Skip to content

Backend: GitLab CI tag exclusion

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Description

In certain instances, I want to be able to run a job on an instance which does not have a certain tag. For example, I have tagged a specific runner that I have to denote that it has the configuration to connect a private repository (let's say repository).

Simply creating another specific runner which has another tag saying that it does not have the repository (e.g. not-repository) would be possible but would exclude the ability for the job to run on a shared runner for which tags can't be added to.

Proposal(s)

Use a Not operand

Allow the use of !repository in the tags: configuration of the .gitlab-ci.yml to denote that the build can run on runners without the tag repository.

Add a tags:exclude: keyword

Alternatively, create a new section called exclude-tags: or tags-exclude:. Or support a syntax like:

tags:
  include:
    - included-tag
    ...
  exclude:
    - repository

Falling back to the old behaviour when the value of tags: is a list rather than a map.

Links / references

Edited by 🤖 GitLab Bot 🤖