I'm currently trying to run multiple pipelines on multiple runners using concurrent execution in GitLab CI.
The problem is: some of the jobs are very resource consuming, some are not. I want to run only one resource-consuming job on a single runner, leaving the rest of runner concurrency for the rest of jobs.
I heard about resource groups, but it is not exactly resolves the problem - high-loading jobs still have to run in parallel, but on different runners. (In other words we want to avoid the situation when two resource-consuming jobs being run on the same runner)
Is it possible to do that somehow?
I'm currently trying to run multiple pipelines on multiple runners using concurrent execution in GitLab CI.
The problem is: some of the jobs are very resource consuming, some are not. I want to run only one resource-consuming job on a single runner, leaving the rest of runner concurrency for the rest of jobs.
I heard about resource groups, but it is not exactly resolves the problem - high-loading jobs still have to run in parallel, but on different runners. (In other words we want to avoid the situation when two resource-consuming jobs being run on the same runner)
Is it possible to do that somehow?
Share Improve this question edited Mar 13 at 14:33 DummyThatMatters asked Mar 13 at 12:01 DummyThatMattersDummyThatMatters 293 bronze badges1 Answer
Reset to default 0I was able to solve the problem by creating two runners per machine - one with high-load
tag and another with normal tag. For high-load runner I've used limit=1
flag to prevent it from taking more than one job simultaneously. And of course you have to mark every resource-consuming job with high-load
tag in order to make thing work.