- layered-backends
- deploy
-# Generic rule to not run the job during scheduled pipelines
-# ----------------------------------------------------------
-.scheduled_pipelines-rules:
- rules: &ignore_scheduled_pipelines
- if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
- when: never
# YAML anchors for rule conditions
# --------------------------------
- public
needs: []
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: *is-mesa-main
changes: &docs-or-ci
- docs/**/*
stage: deploy
needs: []
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: *is-forked-branch
changes: *docs-or-ci
when: manual
# When to automatically run the CI
.ci-run-policy:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
# If any files affecting the pipeline are changed, build/test jobs run
# automatically once all dependency jobs have passed
- changes: &all_paths
extends:
- .ci-run-policy
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
# Run pipeline by default in the main project if any CI pipeline
# configuration files were changed, to ensure docker images are up to date
- if: *is-post-merge
- .fdo.ci-fairy
stage: git-archive
rules:
- - if: *is-scheduled-pipeline
- when: on_success
+ - !reference [.scheduled_pipeline-rules, rules]
# ensure we are running on packet
tags:
- packet.net
# pipelines.
.test-manual-mr:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: *is-forked-branch-or-pre-merge-not-for-marge
changes:
*all_paths
# This file list source dependencies to avoid creating/running jobs
# those outcome cannot be changed by the modifications from a branch.
-# Generic rule to not run the job during scheduled pipelines
-# ----------------------------------------------------------
-.scheduled_pipelines-rules:
- rules: &ignore_scheduled_pipelines
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- when: never
+# Rule to filter for only scheduled pipelines.
+.scheduled_pipeline-rules:
+ rules:
+ - if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
+ when: on_success
+
+# Generic rule to not run the job during scheduled pipelines. Jobs that aren't
+# something like a nightly run should include this rule.
+.no_scheduled_pipelines-rules:
+ rules:
+ - if: *is-scheduled-pipeline
+ when: never
# Mesa core source file dependencies
# ----------------------------------
.mesa-rules:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes: &mesa_core_file_list
- .gitlab-ci.yml
- .gitlab-ci/**/*
.vulkan-rules:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes: &vulkan_file_list
- src/vulkan/**/*
when: on_success
# -------------------------------------
.gallium-rules:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes: &gallium_core_file_list
- src/gallium/*
- src/gallium/auxiliary/**/*
.softpipe-rules:
stage: software-renderer
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.llvmpipe-rules:
stage: software-renderer
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.lavapipe-rules:
stage: software-renderer
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.llvmpipe-cl-rules:
stage: software-renderer
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
- .gitlab-ci.yml
- .gitlab-ci/**/*
when: never
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias)$/") &&
($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
when: never
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- - *ignore_scheduled_pipelines
+ - !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
.nouveau-rules:
stage: nouveau
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.panfrost-midgard-rules:
stage: arm
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.panfrost-bifrost-rules:
stage: arm
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.vc4-rules:
stage: broadcom
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.v3d-rules:
stage: broadcom
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.v3dv-rules:
stage: broadcom
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.lima-rules:
stage: arm
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$LIMA_FARM == "offline"'
when: never
- changes:
.radv-rules:
stage: amd
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.virgl-rules:
stage: layered-backends
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.virgl-iris-rules-performance:
stage: layered-backends
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
# Run only on pre-merge pipelines from Marge
.radeonsi-rules:
stage: amd
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.radeonsi-vaapi-rules:
stage: amd
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.i915g-rules:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.crocus-rules:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.iris-rules:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.iris-rules-performance:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
# Run only on pre-merge pipelines from Marge
.anv-rules:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.intel-rules:
stage: intel
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
when: never
- changes:
.zink-rules:
stage: layered-backends
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.zink-anv-rules:
stage: layered-backends
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.zink-turnip-rules:
stage: layered-backends
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
rules:
- if: '$MICROSOFT_FARM == "offline"'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
rules:
- if: '$MICROSOFT_FARM == "offline"'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
rules:
- if: '$MICROSOFT_FARM == "offline"'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
rules:
- if: '$MICROSOFT_FARM == "offline"'
when: never
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.etnaviv-rules:
stage: etnaviv
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
# Rules for unusual architectures that only build a subset of drivers
.ppc64el-rules:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success
.s390x-rules:
rules:
- - *ignore_scheduled_pipelines
+ - !reference [.no_scheduled_pipelines-rules, rules]
- changes:
*mesa_core_file_list
when: on_success