Assign job to a runner that DOESN'T have a specific tag
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Description
From time to time I need to specify non-intuitive tags to limit the runners that can be picked and satisfy all teams working with them.
For instance, I have one runner for the regular ubuntu, and another for the deboostrap ubuntu (lightweight version). I can't tag them just as 'ubuntu' and 'ubuntu,deboostrap', because some jobs need ubuntu, but can't run on the debootstrap version. The solution is to create an additional tag, for instance 'regular' for the regular ubuntu.
In my point of view the problem is not only the increasing number of tags I need to create, but the fact that the Gitlab-CI admin has to be aware of all possible uses for every runner.
Proposal
I think that something very simple that could mitigate the problem is to allow the programmer to define a "not" for tags, in the tag field in .gitlab-ci.yml file. The example below would mean that any runner with 'ubuntu' tag can be picked, as long as it doesn't have the 'debootstrap' tag.
tags:
- ubuntu
- !deboostrap
Thank you.