We're trying to run many unit-test jobs in parallel. Our Bamboo plan consists of one build job, followed by many (up to 40) unit test jobs, that may take long (up to 30 minutes each or more). We want to drastically reduce the time it takes to run these tests by having a lot of Bamboo agents running them in parallel.
We're using docker to spawn light-weight VMs, but we are wondering how to best use it:
Option 1) Many Bamboo agents running on the host machine. Each agent spawns a Docker container (Docker task in Bamboo), runs the test and then shuts down the container.
Option 2) Many detached Docker containers on the host machine, each running one Bamboo agent. We don't use the Bamboo Docker task, we just run the executable in each agent.
Have you faced the same problem? What option do you think will work best in the long term?
In Option 1, your builds will always start in a clean environment, so checkouts, Maven fetches etc will take longer to complete. This may be an advantage (stable builds) or a disadvantage. Option 2 has the reverse property.
In Option 2, you get the agent process isolation without modifications to your plans, which Option 3.
Note that you can also run multiple agents on the same host without Docker, just provide them with a separate home dir.
I'm happy to announce that Bamboo 7.1 has been released and it’s overflowing with awesome new features. Top-voted issues First and foremost, a bunch of JAC top voted issues has been delivered - y...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events