Up until Bamboo 3.0 we used to have two builds for a branch. A continuous integration build which would run per check-in and a release/nightly build which would run far longer tests that would take 3 hours.
The split of two separate builds have always been something less than Ideal because we use the build number in our versioning system and so we have two versions which are identical between all the builds.
Now we are on 3.2.2 the option of customized builds and plan variables has allowed us to move forward slightly. What we have now is a variable which indicates a release build or not which will run additional tests and tasks.
The problem is that we need two schedules, one on check-in and another at a specific time with a different variable set. We tried the JIRA integration to schedule releases however it just didn't sit right.
Is there a way to setup multiple schedules per build?
As a work around we have another plan run a task which invokes manual webpage calls to run builds (http://bamboo/ajax/runParametrisedManualBuild.action?planKey=<key>&variable_ReleaseBuild=true), which is nothing short of a hack.
I downloaded and tested it in 4.3, seems good however the most critical thing which I can't seem to find is some way to figure out what triggered the build. I need to know if it was a nightly or a perforce checkin. I can't find anything on the triggers page, or when i look at the build log i can not see any extra information/variables being set.
Is there some variable which isn't listed here?
No, not from dependency, just via a task. You cannot set a variable when using dependency triggers.
You might be able to figure out whether the plan was triggered by dependency and alter your build process accordingly, but I think that a separate plan doing a REST call is a cleaner option.
I have been looking for a good way to do this since pre version one. We have the same builds you mention plus webdriver builds, and sql validation builds, so your situation is similar to mine, and I suspect a MAJORITY of bamboo users. I used to use multiple plans and symlink them together to avoid multiple checkouts, but that started failing in 3.3 and was a total kluge to begin with. Atlassian, Please I PLEAD, address this!
There is a feature enhancement open to support multiple build schedules per plan. While this isn't sheduled for a release just yet, due to the high demand for this feature it is on our radar.
You mentioned wanting to set variables for different build schedules? Can you expand on that a little more please?
The comment about setting different variables for different build schedules was to allow modifications to the build plan through current means.
For example if there are two build schedules,
I would currently have a plan variable which says 'Run Build Full Integration Tests' which by default would be set to false. If i could set that variable to true on nighly builds but not on checkin builds it would automatically work in all my current build processes.
That being said, at minimum i would want a 'variable' (bamboo variable, environment variable, whatever) that i could use to pass to msbuild task (through the property field) or to use the environment variable in my msbuild script that would be able to detect what type of build schedule it is running (a variable named SCHEDULENAME set to whatever the schedule was named for example) and set the 'run intergraiton tests' property to true.
At the end of the day multiple build scheuldes would have no use to me (or anyone?) if there was no way to pass a flag to the tasks to indicate what schedule was running, I just thought that modifying plan variables was the most natural way to get it through.
Reading Bamboo 4 release notes i thought maybe BAM-9189 Allow running the same plan with different parameters (ie. plans templates) could help but I can not seem to get it working on my test instance but it seems to just relate to running the same plan on different branchs.
For interest sake, my current way of handling this situation is a new plan called 'nightly builds' which runs a seperate EXE programmed to login as 'build' user and run the defined plans with the 'ReleaseBuild' parameter set to true (Defaults to false) through REST.
Thanks James for your interest in solving this problem.
I reported BAM-13429 - requesting a variable that will tell me the trigger reason. Specifically so I can chose in my build script to perform certain tasks only on the build triggered by schedule. It's current priority is Minor. So far I don't see how all the new features in Bamboo address this yet.
Unless I am missing something Gail, I believe the orginal ticket that james raised BAM-12427 will achieve what you want to do. Granted, it is still minor priorty but hopefully it should get some movement soon. You request a parameter 'bamboo.triggerReason' but that can be achieved using the orginal ticket variable 'bamboo.triggerDescription' with a user setting. Let me know if you see this differently and dont forget to vote and watch ticket BAM-12427.
Thanks for signing up for Jira Ops! I’m Matt Ryall, leader for the Jira Ops product team at Atlassian. Since this is a brand new product, we’ll be delivering improvements quickly and sharing updates...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs