I am using the REST API endpoint https://mybamboo.company.com.com/rest/api/latest/queue/<ProjectKey>-<PLanKey>
According to documentation, this endpoint supports parameters stage=<nameOfStage> and executAllStage=<true/false>
I cannot get either the stage or executeAllStages parameters to work. Regardless of how I set them, the behavior remains the same. The automatic stages are executed, but stop when it hits the first manual.
Assume I have 3 stages named: Stage1, Stage2, Stage3. Stage3 is manual
I am using the Ansible URI module, so the call looks like:
-
uri:
headers:
Authorization: 'Bearer {{ bearer_token }}'
body_format: raw
body: stage=Stage3&executeAllStages=true
method: POST
url: https://mybamboo.company.com/rest/api/latest/queue/TAU-ETX/
The equivalent curl would be:
curl --fail
-H "Authorization: Bearer <XXX>"
-X POST
-d "stage=Stage3&executeAllStages=true"
--location https://mybamboo.company.com.com/rest/api/latest/queue/TAU-ETX
In both formats, the call runs without errors, but no matter how I set the values for stage and executeAllStages, Stage1 and Stage2 are run, Stage3 is not.
There are a lot of questions about this and closely related issues, the best answer I have found being https://community.atlassian.com/t5/Bamboo-questions/Rest-Api-to-start-a-stage-for-build/qaq-p/786887 but I have not been able to get by this.
Can someone help me find my error or confirm there is a bug?
Hi @james_mckean ! How are you doing?
Did you try to add the stage and/or executeAllStages parameter to the end of the URL instead of passing it as a body?
Hope this helps!
Sorry for the long wait.
I am used to using Ansible, so my curl formatting is rusty. If you mean something like
curl --fail -H "Authorization: bearer XXX" -X POST https://bamboo.mybamboo.com/rest/api/latest/queue/TAU-ETX?stage=3&executeAllStages=true
then I get an error like
no matches found: https://bamboo.dev.mybamboo.com/rest/api/latest/queue/TAU-ETX?stage=3&executeAllStages=true
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oh, wait. I am in a zsh shell so apparently the ? needs to be escaped with double quotes.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
OK, further experimenting. I cannot get the bearer token to work, but basic authentication does. Final working format is:
curl --fail -k --user <user>:<password> -X POST https://bamboo.mybamboo.com/rest/api/latest/queue/TAU-ETX"?stage=3&executeAllStages=true"
This builds all stages including the manual one. Now I just have to figure out how to accomplish the same in Ansible.
Thanks for the hint.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @james_mckean !
I am very glad to hear that it worked.
And thanks for give back the Ansible example to the community!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For anyone else trying to make this work in Ansible, the correct format is
name: 'execute all stages test'
hosts: localhost
tasks:
-
uri:
headers:
Authorization: 'Bearer {{ bearer_token }}'
method: POST
url: "https://bamboo.myBamboo.com/rest/api/latest/queue/TAU-ETX/?stage=Stage3&executeAllStages=true"
validate_certs: false
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.