One of the most helpful features of Jenkins CI is automatic job queuing. If there are more build jobs requested than there are resources to execute those jobs, Jenkins can queue your tests, executing them in the order they were requested as resources become available.
By assigning labels to nodes, you can specify the resources you want to use for specific jobs, and set up graceful queuing for your tests. This topic explains how queuing works in Jenkins, how to set up nodes and jobs, and how to use use labels. It assumes you have access to an admin user account in Jenkins, or the appropriate administrative rights.
Here's a basic example of how a Jenkins queue works with a single master node (the machine that runs jobs):
On the Jenkins administration page, The Build Queue and Build Executor Status panels show the node's capacity for running jobs.
On a node with two executors, up to two jobs can be executed at once. If three jobs are started, then the first two will execute and the third will be added to the Build Queue.
Adding multiple nodes on Jenkins is straightforward. You can use different nodes to test on multiple OSs/platforms, as well as for load balancing and other functions. When you add a label to a node, you can control which jobs run on it.
To add a node or label:
To update labels on an existing node, navigate to Manage Jenkins > Manage Nodes > Select Node > Configure.
Once you have configured your jobs to run on specific nodes, they will queue to run on that node based on the number of available executors, as described in the example.