Concurrent runners per executor but only one per Project

I'm using gitlab-ci-multirunner to automatically build debian packages for i386 and amd64. I do this using the shell executor calling different schroots. Each architecture has its own job in the .gitlab-ci.yml file.

Is there a way to have the same runner working concurrently on differen projects, but for each project only one job at a time is processed by each runner?

For example assume I have one runner named ubuntu_builder and two projects Foo and Bar. Each project has the jobs build:deb_amd64 and build:deb_i386. Currently I've seen the following behavior

  • concurrent=1:
  • only job at a time is processed

With concurrency enabled in config.toml

  • concurrent=4
  • all jobs are processed at the same time. One job per project fails because the same files are changed by 2 processes at the same time

I'm looking for a config like concurrent_per_project

  • concurrent=4
  • concurrent_per_project=1 (or false)
  • two jobs are run concurrently. One job from Project Foo and one job from project Bar