One option, I think, would be to use the Node Labels.

In the Node Configuration page, you can set the "Label" field with a
space-separated list of text-names (labels) that can be referenced in a
Job's configuration page.

Now, what I have done for some projects, is to have a String Parameter in
the job configuration, called HOST_MACHINE, which represents the Host to
run on.

Then in the field to specify the machines on which this job can run, I used
variable to the parameter ${HOST_MACHINE} .
(This field is in the Advanced section of the job configuration page)

When starting this job, I gave the appropriate LABEL (defined in the
host-configuration page) to the HOST_MACHINE param and not the actual
host-name.  Jenkins then finds the next available slave/node with has this
label to run the job.

I also used the Throttle plugin to control how many jobs I can run
concurrently.


I hope that this helps,
Mgimza


On Tue, Dec 18, 2012 at 6:31 PM, Nathan Neulinger <[email protected]>wrote:

> I know I can limit job execution by the job, or by categories, but what
> I'd like to be able to do is limit o "one build per distinct set of
> parameter values".
>
> Here's the scenario - I have a simple build that updates and runs tests on
> a bunch of target devices. This build is set up to run another job that
> passes the target hostname/ip as a parameter. Essentially:
>
> RunAll
>        Run Another Build: RunOne(host1)
>        Run Another Build: RunOne(host2)
>
> Right now, "RunOne" is limited to 1 simultaneous execution, but I'd really
> like to be able to have unlimited numbers of RunOne's running, but limit to
> one each for "host1" and "host2".
>
> Is there any plugin/mechanism that could be used to accomplish this? Note
> - host1/host2 are NOT jenkins agent nodes.
>

Reply via email to