Want a Server to only run one project, and it's associated sub-projects, at a time.
We have many build projects that are very heavy users of a server and want only one of these projects, and it's associated child processes, to run on a server at a time. Our selector for this set of build projects can choose between multiple servers.
Does anyone have an idea on modifying a selector so that a server is taken out of the pool of available servers while it is running a project. Ideas? Can we set up our selector such that the first step of the project modifies something on the machine, so that it no longer meets a criteria. A file is created or it's contents changed? I'm researching this myself, but if anyone already has a working method I would appreciate hearing about it. thanks |
One answer
I believe BF_EXCLUSIVE will do exactly what you need. Check the help under Pre-set Properties.
~Spencer
Comments
Brian Gillespie
commented Jan 31 '13, 3:42 p.m.
I have tried using the Selector property BF_EXCLUSIVE, but it appears to be causing Pass Chain/Fail Chain steps to fail with "No server connection available ...". Apparently BF doesn't consider anything other than inline called libraries to part of the project, so BF_EXCLUSIVE also prevent the PassFail libraries from running.
If you are chaining, then that makes it much trickier. I suppose you could set a MAX_JOBS limit of one on each server and make the projects sticky. But that doesn't reserve the slot on each server for the duration of the job. What is the end goal for only allowing a single server for the job? Is it just a resource issue? If so then then MAX_JOBS by itself would be enough to make sure that only one job runs per server. Build Forge considers the chained jobs to be separate jobs, so its difficult to try to wrangle them to do anything together selector-wise. |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.