I want to curl an URL and capture the response into a variable.
when I curl a command and echo its output I get the correct response as below
sh 'output=`curl https://some-host/some-service/getApi?apikey=someKey`;echo $output;'
I want to catch the same response into a variable and use that response for further operation
Below is my Jenkinsfile
pipeline {
agent {
label "build_2"
}
stages {
stage('Build') {
steps {
checkout scm
sh 'npm install'
}
}
stage('Build-Image') {
steps {
echo '..........................Building Image..........................'
//In below line I am getting Output
//sh 'output=`curl https://some-host/some-service/getApi?apikey=someKey`;echo $output;'
script {
//I want to get the same response here
def response = sh 'curl https://some-host/some-service/getApi?apikey=someKey'
echo '=========================Response===================' + response
}
}
}
}
}
Can you please tell me what changes I need to do in my Jenkinsfile
The way to execute curl command is to use sh (or bat if you are on the Windows server) step. You need to know that the sh step by default does not return any value, so if you try to assign it's output to a variable, you will get the null value.
By sending a Curl HEAD request along with the --http2 command line parameter, you can check if the target URL supports the HTTP/2 protocol. In the response, you will see the HTTP/2 200 status line if your server supports the HTTP/2 protocol or HTTP/1.1 200 otherwise.
You could execute the curl command as a shell command using the "execute()" method available on groovy strings. Or you can use some native html processing classes. This will give you some native parsing of the response and response error handling etc.
If you want to return an output from sh
step and capture it in the variable you have to change:
def response = sh 'curl https://some-host/some-service/getApi?apikey=someKey'
to:
def response = sh(script: 'curl https://some-host/some-service/getApi?apikey=someKey', returnStdout: true)
Reference: https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With