Keeping Bamboo happy during Stash downtime

Config Manager
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 20, 2014

We have Stash 2.10.0 linked with Bamboo 5.3 for builds, both running as Windows services.

Build Plans in Bamboo are set to poll Stash every 5 minutes for changes, and build when necessary. This works great most of the time, except when Stash is down for backup (which I do by stopping the service and tar'ing up Stash home before restarting).

During the Stash downtime, Bamboo reports "Unable to detect changes" errors for each plan - not surprising since Stash is not responding.

So in an attempt to avoid these, I tried shutting the Bamboo server service down for the duration of the Stash backup, but I've found that this then causes the remote Build Agents to go offline and I have to manually restart them.

The only solution I've come up with to avoid error conditions is to switch the repository polling from "Every 5 minutes" to cron based , excluding the the backup period, such as "0 0/5 06-22 * * ?" (ok the backup doesn't take 8 hours!). But this will mean every plan firing off at the same second every 5 minutes unless I choose different second/minute combination for each plan, which is a pain as I'm trying to standardise as much configuration as possible between plans.

Is there any other solution that you can suggest which avoids explicit scheduling? Getting the remote agents to cope with server downtime would be preferable I think.

3 answers

1 accepted

0 votes
Answer accepted
Peter Van de Voorde
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 20, 2014

Hi John,

You could also just trigger your builds using a post-receive hook in Stash.

https://marketplace.atlassian.com/plugins/com.atlassian.stash.plugin.stash-web-post-receive-hooks-plugin

using the following url to your build plan :

http://<bamboo-server>/api/rest/updateAndBuild.action?buildKey=<projectkey>-<plankey>

You'll need to add a remote trigger to your Bamboo build plan so it can be triggered by this call.

If you do this then your problems are nonexistent :)

Best regards,

Peter

Config Manager
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 20, 2014

Thanks, Peter, I was vaguely aware of this possibility but hadn't investigated it yet. I'll give it a try, although from what I've read in other posts I think I have to explicitly install the hook in every new repo when a build plan is set up for it.

BTW I've since realised that I could use a cron expression to schedule the polling as well, but I'd still have the "everything polls together" problem.

Peter Van de Voorde
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 20, 2014

Hi John,

I just made a quick blogpost about it : http://www.petervandevoorde.com/2014/01/21/triggering-a-build-in-bamboo-from-stash/

It gives step by step instructions.

You will indeed need to do this for each repo and new build plan.

Best regards,

Peter

1 vote
Andrew Hill August 21, 2014

Sounds painful! It would definitely be much easier to be able to define a global view in Bamboo as to when Stash is going to be offline for a backup.

0 votes
Config Manager
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 20, 2014

Ah well, I should have fully checked before submitting this question. Cron-based scheduling runs the plan every 5 minutes irrespective of whether any changes were committed. So that's no good either :-(

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events