We are using Jenkins to test code running on embedded devices.
We have multiple nodes in our setup, each one has only one (1) embedded device attached to it.
We have two types of Jobs:
- Some of our jobs require an embedded devices, they run tests on them. This type of jobs are matrix configurations because there are many versions of the embedded devices to test.
- Some of our jobs do not require the embedded devices, they only compile code, they don't run any tests.
When tests are running on an embedded device (Job type 1), the node's CPU is mostly free. However, we cannot take advantage of this free CPU to run type 2 jobs because we can only have one executor per node.
We cannot have more then one executor per node because we don't have the "ability to throttle number of concurrent builds of matrix configurations per node" for type 1 jobs.
We need the "ability to throttle number of concurrent builds of matrix configurations per node" so that different configurations of a type 1 Job are not concurrently run on one node as each node only has one embedded device.
This would improvement would greatly increase the effectiveness of our continuous integration setup.