Skip to content

To Execute 1 Job per Runner Only

We are currently implementing Test Execution of Test Suites using Gitlab's CI.

One of the issue we encountered is that it keeps using a runner even though it is being used by another job.

Problem 1:

  • There are 3 available runners (different machines), config is already set to limit = 1 and request_concurrency = 1.
  • Pipeline with 3 jobs running in parallel will be triggered.

Result: The 2 jobs will use 1 runner.

Expectation: The 3 jobs will use the 3 runners (1 job per runner).


Problem 2:

  • Given the above conditions.
  • Pipeline with 9 jobs running in parallel will be triggered.

Result: 6 jobs are running, executing 2 jobs in a runner.

Expectation: Only 3 jobs will be executed (1 job per runner) and the other jobs will be pending.
Other jobs will be executed once a runner is done with the first executions.

Current Setup:

  • There are 3 Specific Runners with similar tag.
  • config.toml on each runner have a setup of concurrent=1, limit=1, request_concurrency=1.
Edited by Paul Quevin Co