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 votes
Accepted answer

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
Community showcase
Posted Jan 15, 2019 in Statuspage

Introducing Statuspage Getting Started guides! First up: What is Statuspage?

Over the next several weeks we'll be sharing some of our Getting Started guides here in the community. Throughout this series of posts, we'd love to hear from customers and non-customers ab...

299 views 5 2
Join discussion

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