Scenario:
I have 5 remote agents divided in 2 servers (3 and 2). I have a "Build Plan", composed by stages (checkout, compile, test and package), and each stage has a unique job.
When I run the "Build Plan", an agent from Server 1 is assigned to the "checkout job". After that, Bamboo starts the "compile job" with an agent from Server 2.
The problem is that my "checkout job" create a folder in disk to do the checkout, and then the "compile job" is looking for the code in a folder that not exists in his server (it was created in disk from the other server)
There are some way to force Bamboo to use the same agent for the entire "Build plan", after initiated the first job? I can't dedicate a job for that "Build Plant" (I have a lot of projects so I need all the remote agents availables for all the projects)
Thank you for your inquire.
If you are looking for a way to "force" builds to be executed against a particular agent, then you could make use of:
- Dedicating an agent (please notice that this approach will restrict the designated agent, making it available to build ONLY the project, plan, job, deployment and/or environment you specify. At the same time, the project, plan, job, deployment and/or environment will ONLY be built by the given agent)
- Defining a new custom capability, followed by Configuring a job's requirements (this is a much more flexible way of telling Bamboo that a particular JOB - in your example - should be executed against the agent that has a particular custom capability. Meaning that if there are no builds to be executed against that agent, the same is still available to take other jobs and build them)
As @Alexey Chystoprudov mentioned and based on the example you have provided, it seems your scenario could be rearranged and for that purpose what Alexey provided would be a way to go.
Hope this helps answering to your inquire. If not, please come back to this thread and we can continue on trying helping you.
Kind regards,
Rafael
Hello @José Ignacio Durand,
Jobs were designed to be executed in parallel. Can you explain why did you need checkout and compile to be executed in separate jobs? Can you put them inside one job? Every job can contain as many tasks as you need, for example:
Stage1
- Job1
- Source code checkout task
- Maven (or MSBuild) task
- run tests task
- Job2
- Source code checkout task
- run Selenium tests
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The thing is, source code checkout may take a lot of time.
That's why we may want to do it once.
Do you happen to know if there's another approach for this issue?
~6 years after...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.