It cannot be determined, which agent will be used for which build configuration in parallel Multi-config builds

42 views Asked by At

We use the multi-configuration according to the BuildConfiguration variable and run the release and debug in parallel with Clean:false in one of our builds. In the agent queue, we have two agents that meet the requirements for this particular build definition.

The problem is that the agents can not be set on this build.

That's why you can not say for sure that debug will always be built on agent x and release on agent y. If now once release on the agent x is built, then the files are around there and will not be deleted. If this causes it to copy something over it when populating the drop, then "outdated" files will end up there.

One option would be the Clean:All, but we do not want to miss the incremental mode.

Is there a solution for this problem?

1

There are 1 answers

0
TomTom On

No, Your scenario is simply not supported. You CAN work around it by having one queue / set of tags to basically have a group of ONE agent, but that is it.

Otherwise you simply are out of scope. Tasks on agents are supposed to be standalone. CLean all = false is supposed to be purely a performance tuning (no need to compile things not changed etc.) NOT supposed to allow followup jobs to reference as state another job has left an agent in.

What I do in some scenarios like that is using my own file server as buffer. Given that my agents run locally and have a VERY high bandiwdth connection (200 gigabit per server), I can just move compiled results into a buffer folder and back with basically zero overhead (as in: zero feeled overhead). Particularly in multi agent jobs that really helps (downloading selenium tests 16 times for 16 agents - no, thanks).