Hello Christian,

I have dealt with this issue. I am actually giving a presentation on it later this month.

I don't believe it's an issue as much as a design decision, with the idea being that if a single machine can pass a build, why run it on an identical machine?

Here is my solution:
Summary: We have a parent job that finds all online nodes that match a certain label, then foreach node, pass a downstream job a label specific to that node.

Details:
We have 40 nodes named 'hl-combo-##' where ## is 01-40. Each of those nodes is also labelled 'harnesslab' and 'hl-combo-##'. In a parent job, using groovy, we search all online nodes that have that label:

jenkins.model.Jenkins.instance.nodes.each {
	if (it.toComputer().online && it.assignedLabels.contains(new hudson.model.labels.LabelAtom('harnesslab'))) {
		harnesslabOnlineNodes += it

Then after some other code, we do:

harnesslabOnlineNodes.each {
		println 'Starting configure job for: ' + it.name
		def nodeLabel = it.name

and we pass nodeLabel into the job as a parameter for the NodeLabel Parameter Plugin. This way, we end up queueing 40 parallel jobs, each pointing at 1 node, but if we were change anything about the node configuration or number, we wouldn't need to alter any code.

Hope this helps!

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to