Execute concurrent stages within a plan

For our setup, we compile a single product on different machines (linux 32/64, windows 32/64, etc) for different releases. Nothing for our setup is shared between stages of our plan, and each stage is a different system we compile under. So if we compile 4 version, we have 4 stages, each stage has 2-3 jobs in it.

Is there anyway to configure the plan to execute all the stages at the same time? I've seen concurrent plan options in the admin area, but didn't know if I could say "i want to execute stages x, y, z at the same time" Since each stage deals with a different agent.

Edit: It seems after further research that instead of building on each system as separate stages, I should have a single "build" stage that has multiple jobs, then those jobs could be executed simultaneously. Is this correct?


1 answer

1 accepted

0 vote

Stages are always run sequentially. Jobs are always run in parallel (provided that you have enough agents). The concurrency options you have seen relate to plans.

If you want the OS-builds to run concurrently either clone the plan 4 times (once for each system) and delete the extra stages in each of them or put all jobs in a single stage.

I have it now where they are building concurrently, but I seem to have errors when they try to get the repo from Perforce. It seems that when the 4 jobs all want to pull from perfoce at the same time, it gives me the error "(com.atlassian.bamboo.repository.RepositoryException : Unable to extract client root from Perforce, therefore could not evaluate where the source will be checked out to.)"

Is there a way I can pull the repo from perfoce just once, and have all the jobs use that instead of each job pulling from perforce at the same time?

Let me extend onto my last statement. This doesn't always happen for each job.. sometimes it works fine for a job, other times it breaks. It's breaks about 70% of the time though.

I don't think you'll be able to achieve that setup on Perforce...

could i potentially setup a stage prior to my build stage that pulls the repository from perforce, maybe stores it as an artifact (tar it up or something), then have that artifact for use in the jobs of the 2nd stage?

Yeah, you can do that. Just define it as a shared artifact, tar it with a Script Task and make jobs in 2nd stage depend on it (each should have an untarring Script Task).

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 18, 2017 in Bamboo

FAQ: How to Upgrade Bamboo Server

Bamboo 5.9 will no longer be supported after June 12, 2017. What does this mean? As part of our End of Life policy, Atlassian supports major versions for two years after the first major iteratio...

1,822 views 0 6
Read article

Atlassian User Groups

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!

Find my local user group

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

Groups near you