Merge branch 'optional-ci-runs' into 'main'

ci: Add ability to run manually some specific jobs

See merge request GNOME/glib!3847
This commit is contained in:
Philip Withnall 2024-01-25 20:24:53 +00:00
commit e04886aeb2

View File

@ -61,6 +61,50 @@ variables:
except:
- tags
# Some jobs take a long time and are unlikely to find failures (or will find
# failures which are not merge-blockers to fix), so theyre executed on a weekly
# schedule in order to save CI resources and speed up branch pipelines.
# But for specific merge requests, one may still want to run them, so make
# possible to run them manually.
.only-schedules-or-manual:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
# As per rule before, the following rules will only apply to non MR events
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE != "schedule"
when: manual
allow_failure: true
# Some jobs should be runnable only on schedules and when triggered by a branch
# in the origin repository, but without
.only-schedules-or-manual-in-default-branch:
rules:
- if: $CI_PROJECT_PATH != "GNOME/glib" || $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
when: never
# As per rule before, the following rules will apply only to GNOME/glib:main
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $CI_PIPELINE_SOURCE != "schedule"
when: manual
allow_failure: true
# Some jobs run on CI runners dont have much available resource.
# Limit those jobs to only ones on the origin repository (GNOME/glib),
# rather than peoples forks or if ran manually.
.only-origin-or-manual:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: $CI_PROJECT_NAMESPACE == "GNOME"
when: always
- if: $CI_PROJECT_NAMESPACE != "GNOME"
when: manual
allow_failure: true
.build-linux:
before_script:
- bash .gitlab-ci/show-execution-environment.sh
@ -193,7 +237,7 @@ debian-stable-x86_64:
hurd-i386:
extends:
- .only-schedules
- .only-schedules-or-manual
stage: build
tags:
- hurd
@ -224,7 +268,7 @@ hurd-i386:
muslc-alpine-x86_64:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual
image: $ALPINE_IMAGE
stage: build
needs: []
@ -255,7 +299,7 @@ muslc-alpine-x86_64:
installed-tests:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual
image: $FEDORA_IMAGE
stage: build
needs: []
@ -293,7 +337,7 @@ installed-tests:
G_DISABLE_ASSERT:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual
image: $FEDORA_IMAGE
stage: build
needs: []
@ -324,7 +368,7 @@ G_DISABLE_ASSERT:
valgrind:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual
image: $FEDORA_IMAGE
stage: analysis
needs: []
@ -432,7 +476,7 @@ msys2-mingw32:
- _coverage/
msys2-clang64:
extends: .only-schedules
extends: .only-schedules-or-manual
stage: build
tags:
- win32-ps
@ -513,7 +557,7 @@ vs2017-x64-static:
- _build/meson-logs
freebsd-13-x86_64:
extends: .only-origin
extends: .only-origin-or-manual
stage: build
tags:
- freebsd-13
@ -549,7 +593,7 @@ freebsd-13-x86_64:
- "_build/meson-logs"
macos-x86_64:
extends: .only-origin
extends: .only-origin-or-manual
stage: build
tags:
- macosintel
@ -631,7 +675,7 @@ coverage:
scan-build:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual
image: $FEDORA_IMAGE
stage: analysis
needs: []
@ -658,7 +702,7 @@ scan-build:
.coverity:
extends:
- .build-linux
- .only-schedules
- .only-schedules-or-manual-in-default-branch
image: $COVERITY_IMAGE
stage: analysis
needs: []
@ -691,7 +735,7 @@ scan-build:
- "cov-int/build-log.txt"
pages:
extends: .only-schedules
extends: .only-schedules-or-manual-in-default-branch
stage: deploy
needs: ['coverage', 'style-check-advisory']
script: