mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-21 06:50:25 +00:00
drm/ci: update gitlab rules
Update gitlab rules to include scheduled pipelines. Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com> Signed-off-by: Helen Koike <helen.koike@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250205081652.1928927-3-vignesh.raman@collabora.com
This commit is contained in:
parent
550b82651b
commit
df54f04f20
3 changed files with 63 additions and 80 deletions
|
@ -1,6 +1,5 @@
|
||||||
.build:
|
.build:
|
||||||
extends:
|
extends:
|
||||||
- .build-rules
|
|
||||||
- .container+build-rules
|
- .container+build-rules
|
||||||
stage: build-only
|
stage: build-only
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|
|
@ -41,6 +41,7 @@ variables:
|
||||||
# Python scripts for structured logger
|
# Python scripts for structured logger
|
||||||
PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"
|
PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
id_tokens:
|
id_tokens:
|
||||||
S3_JWT:
|
S3_JWT:
|
||||||
|
@ -67,6 +68,7 @@ default:
|
||||||
export S3_JWT="$(<${S3_JWT_FILE})" &&
|
export S3_JWT="$(<${S3_JWT_FILE})" &&
|
||||||
rm "${S3_JWT_FILE}"
|
rm "${S3_JWT_FILE}"
|
||||||
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- project: 'freedesktop/ci-templates'
|
- project: 'freedesktop/ci-templates'
|
||||||
ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811
|
ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811
|
||||||
|
@ -126,33 +128,27 @@ stages:
|
||||||
- rockchip
|
- rockchip
|
||||||
- software-driver
|
- software-driver
|
||||||
|
|
||||||
|
|
||||||
# YAML anchors for rule conditions
|
# YAML anchors for rule conditions
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
.rules-anchors:
|
.rules-anchors:
|
||||||
rules:
|
rules:
|
||||||
# Pipeline for forked project branch
|
# do not duplicate pipelines on merge pipelines
|
||||||
- if: &is-forked-branch '$CI_COMMIT_BRANCH && $CI_PROJECT_NAMESPACE != "mesa"'
|
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
|
||||||
when: manual
|
when: never
|
||||||
# Forked project branch / pre-merge pipeline not for Marge bot
|
# merge pipeline
|
||||||
- if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event")'
|
- if: &is-merge-attempt $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: manual
|
# post-merge pipeline
|
||||||
# Pipeline runs for the main branch of the upstream Mesa project
|
- if: &is-post-merge $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "push"
|
||||||
- if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_COMMIT_BRANCH'
|
|
||||||
when: always
|
|
||||||
# Post-merge pipeline
|
|
||||||
- if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_BRANCH'
|
|
||||||
when: on_success
|
|
||||||
# Post-merge pipeline, not for Marge Bot
|
|
||||||
- if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_COMMIT_BRANCH'
|
|
||||||
when: on_success
|
|
||||||
# Pre-merge pipeline
|
# Pre-merge pipeline
|
||||||
- if: &is-pre-merge '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
- if: &is-pre-merge $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: on_success
|
|
||||||
# Pre-merge pipeline for Marge Bot
|
|
||||||
- if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
||||||
when: on_success
|
|
||||||
# Push to a branch on a fork
|
# Push to a branch on a fork
|
||||||
- &is-fork-push '$CI_PROJECT_NAMESPACE != "mesa" && $CI_PIPELINE_SOURCE == "push"'
|
- if: &is-fork-push $CI_PROJECT_NAMESPACE != "mesa" && $CI_PIPELINE_SOURCE == "push"
|
||||||
|
# nightly pipeline
|
||||||
|
- if: &is-scheduled-pipeline $CI_PIPELINE_SOURCE == "schedule"
|
||||||
|
# pipeline for direct pushes that bypassed the CI
|
||||||
|
- if: &is-direct-push $CI_PROJECT_NAMESPACE == "mesa" && $CI_PIPELINE_SOURCE == "push" && $GITLAB_USER_LOGIN != "marge-bot"
|
||||||
|
|
||||||
|
|
||||||
# Rules applied to every job in the pipeline
|
# Rules applied to every job in the pipeline
|
||||||
.common-rules:
|
.common-rules:
|
||||||
|
@ -160,39 +156,48 @@ stages:
|
||||||
- if: *is-fork-push
|
- if: *is-fork-push
|
||||||
when: manual
|
when: manual
|
||||||
|
|
||||||
|
|
||||||
.never-post-merge-rules:
|
.never-post-merge-rules:
|
||||||
rules:
|
rules:
|
||||||
- if: *is-post-merge
|
- if: *is-post-merge
|
||||||
when: never
|
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
|
|
||||||
|
|
||||||
# When to automatically run the CI for build jobs
|
|
||||||
.build-rules:
|
|
||||||
rules:
|
|
||||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
|
||||||
- !reference [.never-post-merge-rules, rules]
|
|
||||||
# Run automatically once all dependency jobs have passed
|
|
||||||
- when: on_success
|
|
||||||
|
|
||||||
# When to automatically run the CI for container jobs
|
|
||||||
.container+build-rules:
|
.container+build-rules:
|
||||||
rules:
|
rules:
|
||||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
- !reference [.common-rules, rules]
|
||||||
|
# Run when re-enabling a disabled farm, but not when disabling it
|
||||||
|
- !reference [.disable-farm-mr-rules, rules]
|
||||||
|
# Never run immediately after merging, as we just ran everything
|
||||||
- !reference [.never-post-merge-rules, rules]
|
- !reference [.never-post-merge-rules, rules]
|
||||||
|
# Build everything in merge pipelines, if any files affecting the pipeline
|
||||||
|
# were changed
|
||||||
|
- if: *is-merge-attempt
|
||||||
|
changes: &all_paths
|
||||||
|
- drivers/gpu/drm/ci/**/*
|
||||||
|
when: on_success
|
||||||
|
# Same as above, but for pre-merge pipelines
|
||||||
|
- if: *is-pre-merge
|
||||||
|
changes:
|
||||||
|
*all_paths
|
||||||
|
when: manual
|
||||||
|
# Skip everything for pre-merge and merge pipelines which don't change
|
||||||
|
# anything in the build
|
||||||
|
- if: *is-merge-attempt
|
||||||
|
when: never
|
||||||
|
- if: *is-pre-merge
|
||||||
|
when: never
|
||||||
|
# Build everything after someone bypassed the CI
|
||||||
|
- if: *is-direct-push
|
||||||
|
when: on_success
|
||||||
|
# Build everything in scheduled pipelines
|
||||||
|
- if: *is-scheduled-pipeline
|
||||||
|
when: on_success
|
||||||
|
# Allow building everything in fork pipelines, but build nothing unless
|
||||||
|
# manually triggered
|
||||||
- when: manual
|
- when: manual
|
||||||
|
|
||||||
|
|
||||||
.ci-deqp-artifacts:
|
.ci-deqp-artifacts:
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME}"
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME}"
|
||||||
|
@ -206,31 +211,7 @@ stages:
|
||||||
- _build/meson-logs/strace
|
- _build/meson-logs/strace
|
||||||
|
|
||||||
|
|
||||||
.container-rules:
|
|
||||||
rules:
|
|
||||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
|
||||||
- !reference [.never-post-merge-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
|
|
||||||
changes:
|
|
||||||
- drivers/gpu/drm/ci/**/*
|
|
||||||
when: on_success
|
|
||||||
# Run pipeline by default if it was triggered by Marge Bot, is for a
|
|
||||||
# merge request, and any files affecting the pipeline were changed
|
|
||||||
- if: *is-pre-merge-for-marge
|
|
||||||
when: on_success
|
|
||||||
# Run pipeline by default in the main project if it was not triggered by
|
|
||||||
# Marge Bot, and any files affecting the pipeline were changed
|
|
||||||
- if: *is-post-merge-not-for-marge
|
|
||||||
when: on_success
|
|
||||||
# Allow triggering jobs manually in other cases
|
|
||||||
- when: manual
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Git archive
|
# Git archive
|
||||||
|
|
||||||
make git archive:
|
make git archive:
|
||||||
extends:
|
extends:
|
||||||
- .fdo.ci-fairy
|
- .fdo.ci-fairy
|
||||||
|
@ -313,6 +294,7 @@ mr-label-maker-test:
|
||||||
- pip install git+https://gitlab.freedesktop.org/freedesktop/mr-label-maker
|
- pip install git+https://gitlab.freedesktop.org/freedesktop/mr-label-maker
|
||||||
- mr-label-maker --dry-run --mr $CI_MERGE_REQUEST_IID
|
- mr-label-maker --dry-run --mr $CI_MERGE_REQUEST_IID
|
||||||
|
|
||||||
|
|
||||||
# Jobs that need to pass before spending hardware resources on further testing
|
# Jobs that need to pass before spending hardware resources on further testing
|
||||||
.required-for-hardware-jobs:
|
.required-for-hardware-jobs:
|
||||||
needs:
|
needs:
|
||||||
|
|
|
@ -1,16 +1,11 @@
|
||||||
.test-rules:
|
|
||||||
rules:
|
|
||||||
- !reference [.no_scheduled_pipelines-rules, rules]
|
|
||||||
- !reference [.collabora-farm-rules, rules]
|
|
||||||
- !reference [.google-freedreno-farm-rules, rules]
|
|
||||||
- when: on_success
|
|
||||||
|
|
||||||
.lava-test:
|
.lava-test:
|
||||||
extends:
|
extends:
|
||||||
- .test-rules
|
|
||||||
- .build-rules
|
|
||||||
- .container+build-rules
|
- .container+build-rules
|
||||||
timeout: "1h30m"
|
timeout: "1h30m"
|
||||||
|
rules:
|
||||||
|
- !reference [.scheduled_pipeline-rules, rules]
|
||||||
|
- !reference [.collabora-farm-rules, rules]
|
||||||
|
- when: on_success
|
||||||
script:
|
script:
|
||||||
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
||||||
- rm -rf install
|
- rm -rf install
|
||||||
|
@ -74,8 +69,11 @@
|
||||||
extends:
|
extends:
|
||||||
- .baremetal-test-arm64
|
- .baremetal-test-arm64
|
||||||
- .use-debian/baremetal_arm64_test
|
- .use-debian/baremetal_arm64_test
|
||||||
- .test-rules
|
|
||||||
timeout: "1h30m"
|
timeout: "1h30m"
|
||||||
|
rules:
|
||||||
|
- !reference [.scheduled_pipeline-rules, rules]
|
||||||
|
- !reference [.google-freedreno-farm-rules, rules]
|
||||||
|
- when: on_success
|
||||||
variables:
|
variables:
|
||||||
FDO_CI_CONCURRENT: 10
|
FDO_CI_CONCURRENT: 10
|
||||||
HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
|
HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
|
||||||
|
@ -444,13 +442,15 @@ panfrost:g12b:
|
||||||
virtio_gpu:none:
|
virtio_gpu:none:
|
||||||
stage: software-driver
|
stage: software-driver
|
||||||
timeout: "1h30m"
|
timeout: "1h30m"
|
||||||
|
rules:
|
||||||
|
- !reference [.scheduled_pipeline-rules, rules]
|
||||||
|
- when: on_success
|
||||||
variables:
|
variables:
|
||||||
CROSVM_GALLIUM_DRIVER: llvmpipe
|
CROSVM_GALLIUM_DRIVER: llvmpipe
|
||||||
DRIVER_NAME: virtio_gpu
|
DRIVER_NAME: virtio_gpu
|
||||||
GPU_VERSION: none
|
GPU_VERSION: none
|
||||||
extends:
|
extends:
|
||||||
- .test-gl
|
- .test-gl
|
||||||
- .test-rules
|
|
||||||
tags:
|
tags:
|
||||||
- kvm
|
- kvm
|
||||||
script:
|
script:
|
||||||
|
@ -465,12 +465,14 @@ virtio_gpu:none:
|
||||||
vkms:none:
|
vkms:none:
|
||||||
stage: software-driver
|
stage: software-driver
|
||||||
timeout: "1h30m"
|
timeout: "1h30m"
|
||||||
|
rules:
|
||||||
|
- !reference [.scheduled_pipeline-rules, rules]
|
||||||
|
- when: on_success
|
||||||
variables:
|
variables:
|
||||||
DRIVER_NAME: vkms
|
DRIVER_NAME: vkms
|
||||||
GPU_VERSION: none
|
GPU_VERSION: none
|
||||||
extends:
|
extends:
|
||||||
- .test-gl
|
- .test-gl
|
||||||
- .test-rules
|
|
||||||
tags:
|
tags:
|
||||||
- kvm
|
- kvm
|
||||||
script:
|
script:
|
||||||
|
|
Loading…
Add table
Reference in a new issue