ci: split CI runner availability to separate repo
The basic idea is to have an out-of-tree way to disable CI jobs when runners/farms are offline. This would avoid users having to rebase to get the commit that enabled/disabled jobs. And handle release branches. This would also be useful to re-use for (eventual) kernel CI jobs that are using the same runners.
The first part, is to use a variable per runner/farm that is referenced in the associated rules:
.freedreno-rules:
stage: freedreno
rules:
- if: '$FD_FARM == "offline"'
when: never
- *ignore_scheduled_pipelines
- changes:
*mesa_core_file_list
see 8f784c8f
The second part would be a separate git tree that simply defines the values for all the $XYZ_FARM
variables, setting them to "online" or "offline", which could be referenced via the include
section at toplevel .gitlab-ci.yml:
include:
- project: 'freedesktop/ci-runner-status'
ref: main
file:
- '/ci-runner-status.yml'
- project: 'freedesktop/ci-templates'
ref: 79c325922670137e8f0a4dc5f6f097e0eb57c1af
file:
- '/templates/ci-fairy.yml'
Anyone who maintains a CI runner/farm should have push access to the ci-runner-status tree.