ci/farms: always compare the code against main repository
authorDavid Heidelberg <david.heidelberg@collabora.com>
Mon, 24 Jul 2023 16:27:02 +0000 (18:27 +0200)
committerDavid Heidelberg <david.heidelberg@collabora.com>
Wed, 26 Jul 2023 12:01:17 +0000 (15:01 +0300)
`rules:changes:compare_to` resolved firstly pushed branch pipelines,
which always evaluated `rules:changes` as true which breaks the workflow

Since we now explicitely say, that we compare against `main` repository,
GitLab can evaluate against real changes.

Fixes: 79f7882fc604 ("ci: add quirk for GitLab assuming changes is always true for scheduled runs")

Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24305>

.gitlab-ci/farm-rules.yml
docs/releasing.rst

index 24e6c2d..adf07cf 100644 (file)
@@ -2,10 +2,14 @@
   rules:
     - exists: [ .ci-farms-disabled/microsoft ]  # 1. Is disabled, never run
       when: never
-    - changes: [ .ci-farms-disabled/microsoft ]  # 2. Removed from disabled, run
+    - changes:
+        paths: [ .ci-farms-disabled/microsoft ]  # 2. Removed from disabled, run
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]  # 3. We touched other farms in MR, do not run
+    - changes:
+        paths: [ .ci-farms-disabled/* ]  # 3. We touched other farms in MR, do not run
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     # 4. Fall-through (other rules or on_success)
@@ -16,7 +20,9 @@
     # pipeline were changed
     - exists: [ .ci-farms-disabled/microsoft ]
       when: never
-    - changes: [ .ci-farms-disabled/microsoft ]
+    - changes:
+        paths: [ .ci-farms-disabled/microsoft ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.microsoft-farm-rules, rules]
@@ -27,7 +33,9 @@
     # pipeline were changed
     - exists: [ .ci-farms-disabled/microsoft ]
       when: never
-    - changes: [ .ci-farms-disabled/microsoft ]
+    - changes:
+        paths: [ .ci-farms-disabled/microsoft ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
     - !reference [.microsoft-farm-rules, rules]
       exists: [ .ci-farms-disabled/collabora ]
       when: never
     - if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/ && $CI_PIPELINE_SOURCE != "schedule"'
-      changes: [ .ci-farms-disabled/collabora ]
+      changes:
+        paths: [ .ci-farms-disabled/collabora ]
+        compare_to: main
       when: on_success
     - if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/ && $CI_PIPELINE_SOURCE != "schedule"'
-      changes: [ .ci-farms-disabled/* ]
+      changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       when: never
 
 .collabora-farm-manual-rules:
@@ -51,7 +63,9 @@
       exists: [ .ci-farms-disabled/collabora ]
       when: never
     - if: '$RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/ && $CI_PIPELINE_SOURCE != "schedule"'
-      changes: [ .ci-farms-disabled/collabora ]
+      changes:
+        paths: [ .ci-farms-disabled/collabora ]
+        compare_to: main
       when: never
     - !reference [.collabora-farm-rules, rules]
 
   rules:
     - exists: [ .ci-farms-disabled/igalia ]
       when: never
-    - changes: [ .ci-farms-disabled/igalia ]
+    - changes:
+        paths: [ .ci-farms-disabled/igalia ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
 
@@ -71,7 +89,9 @@
   rules:
     - exists: [ .ci-farms-disabled/igalia ]
       when: never
-    - changes: [ .ci-farms-disabled/igalia ]
+    - changes:
+        paths: [ .ci-farms-disabled/igalia ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.igalia-farm-rules, rules]
   rules:
     - exists: [ .ci-farms-disabled/lima ]
       when: never
-    - changes: [ .ci-farms-disabled/lima ]
+    - changes:
+        paths: [ .ci-farms-disabled/lima ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
 
   rules:
     - exists: [ .ci-farms-disabled/lima ]
       when: never
-    - changes: [ .ci-farms-disabled/lima ]
+    - changes:
+        paths: [ .ci-farms-disabled/lima ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.lima-farm-rules, rules]
   rules:
     - exists: [ .ci-farms-disabled/anholt ]
       when: never
-    - changes: [ .ci-farms-disabled/anholt ]
+    - changes:
+        paths: [ .ci-farms-disabled/anholt ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
 
   rules:
     - exists: [ .ci-farms-disabled/anholt ]
       when: never
-    - changes: [ .ci-farms-disabled/anholt ]
+    - changes:
+        paths: [ .ci-farms-disabled/anholt ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.anholt-farm-rules, rules]
     - exists: [ .ci-farms-disabled/valve-kws ]
       if: '$RUNNER_FARM_LOCATION == "keywords"'
       when: never
-    - changes: [ .ci-farms-disabled/valve-mupuf ]
+    - changes:
+        paths: [ .ci-farms-disabled/valve-mupuf ]
+        compare_to: main
       if: '$RUNNER_FARM_LOCATION == "mupuf" && $CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/valve-kws ]
+    - changes:
+        paths: [ .ci-farms-disabled/valve-kws ]
+        compare_to: main
       if: '$RUNNER_FARM_LOCATION == "keywords" && $CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       when: never
 
 .valve-farm-manual-rules:
     - exists: [ .ci-farms-disabled/valve-kws ]
       if: '$RUNNER_FARM_LOCATION == "keywords"'
       when: never
-    - changes: [ .ci-farms-disabled/valve-mupuf ]
+    - changes:
+        paths: [ .ci-farms-disabled/valve-mupuf ]
+        compare_to: main
       if: '$RUNNER_FARM_LOCATION == "mupuf" && $CI_PIPELINE_SOURCE != "schedule"'
       when: never
-    - changes: [ .ci-farms-disabled/valve-kws ]
+    - changes:
+        paths: [ .ci-farms-disabled/valve-kws ]
+        compare_to: main
       if: '$RUNNER_FARM_LOCATION == "keywords" && $CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.valve-farm-rules, rules]
   rules:
     - exists: [ .ci-farms-disabled/austriancoder ]
       when: never
-    - changes: [ .ci-farms-disabled/austriancoder ]
+    - changes:
+        paths: [ .ci-farms-disabled/austriancoder ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
 
   rules:
     - exists: [ .ci-farms-disabled/austriancoder ]
       when: never
-    - changes: [ .ci-farms-disabled/austriancoder ]
+    - changes:
+        paths: [ .ci-farms-disabled/austriancoder ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.austriancoder-farm-rules, rules]
   rules:
     - exists: [ .ci-farms-disabled/freedreno ]
       when: never
-    - changes: [ .ci-farms-disabled/freedreno ]
+    - changes:
+        paths: [ .ci-farms-disabled/freedreno ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: on_success
-    - changes: [ .ci-farms-disabled/* ]
+    - changes:
+        paths: [ .ci-farms-disabled/* ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
 
   rules:
     - exists: [ .ci-farms-disabled/freedreno ]
       when: never
-    - changes: [ .ci-farms-disabled/freedreno ]
+    - changes:
+        paths: [ .ci-farms-disabled/freedreno ]
+        compare_to: main
       if: '$CI_PIPELINE_SOURCE != "schedule"'
       when: never
     - !reference [.freedreno-farm-rules, rules]
index f663522..cc7772e 100644 (file)
@@ -228,6 +228,14 @@ Now go to
 `GitLab <https://gitlab.freedesktop.org/mesa/mesa/-/milestones>`__ and
 add the new Mesa version X.Y.
 
+Now you need to adjust CI, to not try to compare the changed files against `main` branch.
+
+.. code-block:: console
+
+   sed -i '/compare_to: main/d' .gitlab-ci/**/*.yml
+   git commit -asm 'ci: disable comparing against the main branch'
+
+
 Check that there are no distribution breaking changes and revert them if
 needed. For example: files being overwritten on install, etc. Happens
 extremely rarely - we had only one case so far (see commit