Default:tags does not inherit to jobs
Tagging jobs allows for granular control over which jobs are executed on which runners. In issue #16043 (closed), a suggestion was raised to allow for
tags to be set globally, or configured as default options (which the resulting MR eventually settled on).
tags as a default parameter, the value does not inherit to jobs that do not explicitly specify the tag to use. Is this working as intended? If so, the documentation should be updated to clarify that the default
tags will not be inherited by jobs.
The workaround is to explicitly define
tags for each job, or to use job templates as was mentioned in the original issue that lead to the merge request.
This functionality was added in !20747 (merged).
Premium customer facing this problem: ticket 142554 (internal).
Steps to reproduce
Have a runner configured to only accept tagged jobs with
docker-dind as the tag.
A sample CI:
default: tags: ['docker-dind'] job1: tags: ['docker-dind'] script: echo "explicit tags" job2: script: echo "inherit tags"
job1 runs as expected;
job2 holds indefinitely waiting for a runner. It is marked as "stuck" in the UI.
I have a quick demo of project on GitLab.com using a specified runner, configured to only accept tagged jobs: https://gitlab.com/kevenhughes/default-tags
specific runner NqziYn6g, available tags are
CI has two jobs, one which explicitly defines a tag, and one which relies on
default to inherit a tag.
The resulting pipeline, wherein job1 succeeds but job2 sits on hold indefinitely due to being untagged.
What is the current bug behavior?
default:tags is not inherit by jobs which don't otherwise specify a list of tags. If this isn't a bug, but is working correctly by design, the documentation should be clarified.
What is the expected correct behavior?
As a default config, it should be applied to jobs without an explicit definition of tags.
My original thought was that
tags is not set to
inherit: true in lib/gitlab/ci/config/entry/default.rb