Some stages concurrent, others not

Problem to solve

In the CI I am using, most stages can run with concurrency - e.g. 10 jobs per runner. But other stages do builds which require a dedicated machine. I want the runners to use concurrency for some stages (or jobs?) but not all.

If I set a runner’s concurrency to 10, then if it gets all the build jobs it takes hours. If I set it to 1, then the non-build jobs use only 10% of the machine, so most runners are idle.

Steps to reproduce

I have tried concurrency in config.toml and looking through the yml configuration, but I cannot see anything that helps with this.

Configuration

I have tried changing the ‘concurrent = 1’ on a runner. I have read through the documentation which mentions parallel or concurrent, as well as resource_group. But somehow I cannot figure this out!

Thank you,
Simon

Hi,

Neither parallel nor resource_group is meant to be used for this use case.

I have similar situation and I have solved it in a following way:

I have several runners (VMs) with the same tag and they all can run up to 4 concurrent jobs. Then, I have one runner with another tag (e.g. dedicated), which is allowed to run only 1 job at a time. Jobs that require a bit more CPU (should run alone at a runner), use this specific tag, and all the other jobs use the usual tag and are executed on runners where concurrency is enabled.

Perhaps you can do it in a similar way? :slight_smile:

Thank you Paula, yes that seems like a good idea!

  • Simon
1 Like