Use the same remote agent for differents jobs
Asked by Jos? Ignacio Durand:

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)

<br />

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)


Answers:
author: Rafael Pinto Sperafico
body: Hi [@Jos? Ignacio Durand](/t5/user/viewprofilepage/user-id/2451767),

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](https://confluence.atlassian.com/bamboo/dedicating-an-agent-629015108.html "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](https://confluence.atlassian.com/bamboo/defining-a-new-custom-capability-289277149.html "Defining a new custom capability"), followed by [Configuring a job's requirements](https://confluence.atlassian.com/bamboo/configuring-a-job-s-requirements-289277064.html "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](/t5/user/viewprofilepage/user-id/781646) 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


author: Alexey Chystoprudov
body: Hello [@Jos? Ignacio Durand](/t5/user/viewprofilepage/user-id/2451767),

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
```

comments: author: yogev ch
body: 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...