ci: Add manual rules variations to disable irrelevant driver jobs.
If you're only affecting one or a couple of drivers, it would be nice if your pipeline buttons on the web UI weren't full of manual run buttons for all the other drivers. This is a bunch of duplicated lines, but less than it could have been now that we have !references. In some of these cases (i915g, nouveau, etnaviv), we have no non-manual jobs for those drivers, so I could have just rewritten the original "driver-rules" to "driver-manual-rules". I decided to keep things consistent between drivers, though, because this is all esoteric enough to readers already without making different drivers' rules look different. Fixes: #4891 Acked-by: David Heidelberg <david.heidelberg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17445>
This commit is contained in:
@@ -53,6 +53,36 @@
|
||||
- src/util/**/*
|
||||
when: on_success
|
||||
|
||||
# Same core dependencies for doing manual runs.
|
||||
.core-manual-rules:
|
||||
rules:
|
||||
# We only want manual jobs to show up when it's not marge's pre-merge CI
|
||||
# run, otherwise she'll wait until her timeout. The exception is
|
||||
# performance jobs, see below.
|
||||
- if: ('$GITLAB_USER_LOGIN == "marge-bot" &&
|
||||
$CI_PIPELINE_SOURCE == "merge_request_event"' &&
|
||||
$GITLAB_USER_LOGIN !~ "/performance$/")
|
||||
when: never
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- changes:
|
||||
*core_file_list
|
||||
when: manual
|
||||
|
||||
# Rules for performance jobs tracking. We want perf jobs to run as code is
|
||||
# merged to main, but we don't want them to block marge. So, they need to have
|
||||
# only when: never or when: manual, and a separate script maintained by
|
||||
# Collabora triggers the manual job after merge to main. These "never" filters
|
||||
# need to come before any paths with "manual".
|
||||
.performance-rules:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
|
||||
when: never
|
||||
# Allow the merge to complete even before the job completes (since it won't
|
||||
# even start until the separate script triggers on it).
|
||||
allow_failure: true
|
||||
|
||||
# Mesa source file dependencies that may impact any GL driver test job.
|
||||
.gl-rules:
|
||||
rules:
|
||||
@@ -86,6 +116,16 @@
|
||||
- src/gallium/winsys/*
|
||||
when: on_success
|
||||
|
||||
.gl-manual-rules:
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
|
||||
# Source file dependencies that may impact any Vulkan driver build or test
|
||||
.vulkan-rules:
|
||||
rules:
|
||||
@@ -94,6 +134,13 @@
|
||||
- src/vulkan/**/*
|
||||
when: on_success
|
||||
|
||||
.vulkan-manual-rules:
|
||||
rules:
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: manual
|
||||
|
||||
.softpipe-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
@@ -124,6 +171,14 @@
|
||||
- src/gallium/winsys/sw/**/*
|
||||
when: on_success
|
||||
|
||||
.lavapipe-manual-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes: *lavapipe_file_list
|
||||
when: manual
|
||||
|
||||
.llvmpipe-cl-rules:
|
||||
stage: software-renderer
|
||||
rules:
|
||||
@@ -211,6 +266,14 @@
|
||||
- src/freedreno/registers/**/*
|
||||
when: on_success
|
||||
|
||||
.freedreno-common-manual-rules:
|
||||
rules:
|
||||
- !reference [.freedreno-farm-rules, rules]
|
||||
- !reference [.core-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_core_file_list
|
||||
when: manual
|
||||
|
||||
.freedreno-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
@@ -222,15 +285,33 @@
|
||||
- src/gallium/winsys/freedreno/**/*
|
||||
when: on_success
|
||||
|
||||
.freedreno-manual-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_gl_file_list
|
||||
when: manual
|
||||
|
||||
.turnip-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-rules, rules]
|
||||
- !reference [.vulkan-rules, rules]
|
||||
- changes:
|
||||
- changes: &freedreno_vulkan_file_list
|
||||
- src/freedreno/vulkan/**/*
|
||||
when: on_success
|
||||
|
||||
.turnip-manual-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-common-manual-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- changes:
|
||||
*freedreno_vulkan_file_list
|
||||
when: manual
|
||||
|
||||
# For piglit and skqp test jobs that run both GL and VK tests.
|
||||
.freedreno-turnip-rules:
|
||||
rules:
|
||||
@@ -243,52 +324,33 @@
|
||||
- !reference [.restricted-rules, rules]
|
||||
- !reference [.freedreno-rules, rules]
|
||||
|
||||
# Rules for GL driver performance tracking. We want them to run as code is
|
||||
# merged to main, but we don't want them to block marge. So, they need to have
|
||||
# only when: never or when: manual, and a separate script maintained by
|
||||
# Collabora triggers the manual job after merge to main.
|
||||
.gl-rules-performance:
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
|
||||
when: never
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
# Allow the merge to complete even before the job completes (since it won't
|
||||
# even start until the separate script triggers on it).
|
||||
allow_failure: true
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.freedreno-rules-performance:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- !reference [.freedreno-farm-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- changes:
|
||||
*freedreno_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*freedreno_gl_file_list
|
||||
when: manual
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.freedreno-manual-rules, rules]
|
||||
|
||||
.nouveau-rules:
|
||||
stage: nouveau
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
- changes: &nouveau_file_list
|
||||
- src/nouveau/**/*
|
||||
- src/gallium/drivers/nouveau/**/*
|
||||
- src/gallium/winsys/kmsro/**/*
|
||||
- src/gallium/winsys/nouveau/**/*
|
||||
when: on_success
|
||||
|
||||
.nouveau-manual-rules:
|
||||
stage: nouveau
|
||||
rules:
|
||||
- !reference [.anholt-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*nouveau_file_list
|
||||
when: manual
|
||||
|
||||
.panfrost-midgard-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
@@ -309,6 +371,19 @@
|
||||
- src/panfrost/midgard/**/*
|
||||
when: on_success
|
||||
|
||||
.panfrost-midgard-manual-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes: *panfrost_gallium_file_list
|
||||
when: manual
|
||||
- changes: *panfrost_common_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
- src/panfrost/midgard/**/*
|
||||
when: manual
|
||||
|
||||
.panfrost-bifrost-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
@@ -324,13 +399,32 @@
|
||||
- changes: &panfrost_vulkan_file_list
|
||||
- src/panfrost/vulkan/*
|
||||
when: on_success
|
||||
- changes:
|
||||
- changes: &panfrost_bifrost_file_list
|
||||
- src/panfrost/compiler/**/*
|
||||
when: on_success
|
||||
|
||||
.panfrost-bifrost-manual-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*panfrost_common_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_gallium_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_vulkan_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*panfrost_bifrost_file_list
|
||||
when: manual
|
||||
|
||||
.broadcom-common-rules:
|
||||
rules:
|
||||
- changes:
|
||||
- changes: &broadcom_file_list
|
||||
- src/broadcom/meson.build
|
||||
- src/broadcom/ci/**/*
|
||||
- src/broadcom/cle/**/*
|
||||
@@ -360,12 +454,24 @@
|
||||
- !reference [.igalia-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- !reference [.broadcom-common-rules, rules]
|
||||
- changes:
|
||||
- changes: &v3d_file_list
|
||||
- src/gallium/drivers/v3d/**/*
|
||||
- src/gallium/winsys/kmsro/**/*
|
||||
- src/gallium/winsys/v3d/**/*
|
||||
when: on_success
|
||||
|
||||
.v3d-manual-rules:
|
||||
stage: broadcom
|
||||
rules:
|
||||
- !reference [.igalia-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*broadcom_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*v3d_file_list
|
||||
when: manual
|
||||
|
||||
.v3dv-rules:
|
||||
stage: broadcom
|
||||
rules:
|
||||
@@ -408,6 +514,15 @@
|
||||
- !reference [.valve-farm-rules, rules]
|
||||
- !reference [.radv-rules, rules]
|
||||
|
||||
.radv-valve-manual-rules:
|
||||
stage: amd
|
||||
rules:
|
||||
- !reference [.valve-farm-rules, rules]
|
||||
- !reference [.vulkan-manual-rules, rules]
|
||||
- changes:
|
||||
*radv_file_list
|
||||
when: manual
|
||||
|
||||
.virgl-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
@@ -420,14 +535,12 @@
|
||||
- src/gallium/winsys/virgl/**/*
|
||||
when: on_success
|
||||
|
||||
# Unfortunately we can't sed the on_success from another rules set, so we have
|
||||
# to do duplicate the files lists to set the job to manual (see
|
||||
# .gl-rules-performance)
|
||||
.virgl-iris-rules-performance:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*llvmpipe_file_list
|
||||
when: manual
|
||||
@@ -489,22 +602,38 @@
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
- changes: &i915g_file_list
|
||||
- src/gallium/drivers/i915/**/*
|
||||
- src/gallium/winsys/i915/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.i915g-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*i915g_file_list
|
||||
when: manual
|
||||
|
||||
.crocus-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
- changes: &crocus_file_list
|
||||
- src/gallium/drivers/crocus/**/*
|
||||
- src/gallium/winsys/crocus/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.crocus-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*crocus_file_list
|
||||
when: manual
|
||||
|
||||
.iris-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -517,14 +646,25 @@
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
|
||||
.iris-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
|
||||
# Unfortunately we can't sed the on_success from another rules set, so we have
|
||||
# to do duplicate the files lists to set the job to manual (see
|
||||
# .gl-rules-performance)
|
||||
# .performance-rules)
|
||||
.iris-rules-performance:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.collabora-farm-rules, rules]
|
||||
- !reference [.gl-rules-performance, rules]
|
||||
- !reference [.performance-rules, rules]
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
@@ -660,7 +800,7 @@
|
||||
rules:
|
||||
- !reference [.austriancoder-farm-rules, rules]
|
||||
- !reference [.gl-rules, rules]
|
||||
- changes:
|
||||
- changes: &etnaviv_file_list
|
||||
- src/etnaviv/**/*
|
||||
- src/gallium/drivers/etnaviv/**/*
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
@@ -669,6 +809,14 @@
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
when: on_success
|
||||
|
||||
.etnaviv-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.gl-manual-rules, rules]
|
||||
- changes:
|
||||
*etnaviv_file_list
|
||||
when: manual
|
||||
|
||||
# Rules for unusual architectures that only build a subset of drivers
|
||||
.ppc64el-rules:
|
||||
rules:
|
||||
|
||||
Reference in New Issue
Block a user