We are using a CURL script in bamboo to call and external API.If the API comes back with, say, a HTTP 400 (Bad Request) status message, how can Bamboo interpret that as a failure? Currently, the plan passes because bamboo was able to run the script. We also added the "-v" option to enable verbose messaging. The response also contains the word "error"
A Bamboo build will fail when the last exit code of your script ends with a value greater than 0.
By default a curl command will end with 0, even when you get an HTTP repsonse code other than 200.
The easiest solution is to use the --fail flag in your curl command. It will exit with error code 22.
Check the curl manual for more info.
curl --fail https://community.atlassian.com/thisdoesnotexist
echo $? #this outputs the exit code of the previous command. 22 in this case
note: do not include that echo command in your script as it's own exit code will be 0.
An alterative is to extract the http response code from your curl response and check whether it's 200 or something else but that requires some extra Linux commands.
In case your curl command is not the last one in your script task you should either save the exit code in a variable and or use set -e at the top of your script.
G’day Community! As we gear up to introduce Bamboo Data Center to the world, we wanted to make sure that we shared a bit more about Bamboo, the product. Our team has put together an overview video ...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events