ci: implement farms handling trough files inside .ci-farms

- Disable farm with `git mv .ci-farm{,-disabled}/$farm_name`.
 - Re-enable farm with `git mv .ci-farm{-disabled,}/$farm_name`.

NEVER MIX FARM MAINTENANCE WITH ANY OTHER CHANGE IN THE SAME MERGE REQUEST!

Reviewed-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23629>
This commit is contained in:
David Heidelberg
2023-06-15 10:49:40 +02:00
committed by Marge Bot
parent 2146e91e98
commit dcf5dfbbf8
14 changed files with 86 additions and 25 deletions

View File

@@ -437,7 +437,7 @@ debian/arm64_test:
- .container
- .windows-docker-vs2019
rules:
- !reference [.microsoft-farm-rules, rules]
- !reference [.microsoft-farm-container-rules, rules]
- !reference [.container-rules, rules]
variables:
GIT_STRATEGY: fetch # we do actually need the full repository though

View File

@@ -268,41 +268,81 @@
- src/gallium/frontends/rusticl/**/*
when: on_success
# Farm rules
.microsoft-farm-rules:
rules:
- exists: [ .ci-farms-disabled/microsoft ] # 1. Is disabled, never run
when: never
- changes: [ .ci-farms-disabled/microsoft ] # 2. Removed from disabled, run
when: on_success
- changes: [ .ci-farms-disabled/* ] # 3. We touched other farms in MR, do not run
when: never
# 4. Fall-through (other rules or on_success)
.collabora-farm-rules:
rules:
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
- if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
exists: [ .ci-farms-disabled/collabora ]
when: never
- if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
changes: [ .ci-farms-disabled/collabora ]
when: on_success
- if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
changes: [ .ci-farms-disabled/* ]
when: never
.igalia-farm-rules:
rules:
- if: '$IGALIA_FARM == "offline"'
- exists: [ .ci-farms-disabled/igalia ]
when: never
- changes: [ .ci-farms-disabled/igalia ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
.lima-farm-rules:
rules:
- exists: [ .ci-farms-disabled/lima ]
when: never
- changes: [ .ci-farms-disabled/lima ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
.anholt-farm-rules:
rules:
- if: '$ANHOLT_FARM == "offline"'
- exists: [ .ci-farms-disabled/anholt ]
when: never
- changes: [ .ci-farms-disabled/anholt ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
.valve-farm-rules:
rules:
- if: '$VALVE_FARM == "offline"'
- exists: [ .ci-farms-disabled/valve ]
when: never
- changes: [ .ci-farms-disabled/valve ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
.austriancoder-farm-rules:
rules:
- if: '$AUSTRIANCODER_FARM == "offline"'
- exists: [ .ci-farms-disabled/austriancoder ]
when: never
- changes: [ .ci-farms-disabled/austriancoder ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
# Skips freedreno jobs if either of the farms we use are offline.
.freedreno-farm-rules:
rules:
- if: '$FD_FARM == "offline"'
- exists: [ .ci-farms-disabled/freedreno ]
when: never
- !reference [.collabora-farm-rules, rules]
.microsoft-farm-rules:
rules:
- if: '$MICROSOFT_FARM == "offline"'
- changes: [ .ci-farms-disabled/freedreno ]
when: on_success
- changes: [ .ci-farms-disabled/* ]
when: never
# Rules for changes that impact either freedreno or turnip.
@@ -555,8 +595,7 @@
.lima-rules:
stage: arm
rules:
- if: '$LIMA_FARM == "offline"'
when: never
- !reference [.lima-farm-rules, rules]
- !reference [.gl-rules, rules]
- changes:
- src/gallium/drivers/lima/**/*