ci: specify explicit dependencies between jobs

Use `needs` to specify job dependencies explicitly instead of relying on
stages for ordering. This allows jobs from multiple stages to run concurrently
without having to wait for unrelated jobs in earlier stages.

See https://docs.gitlab.com/ci/yaml/#needs for more information.
This commit is contained in:
Barnabás Pőcze 2025-05-10 12:59:36 +02:00 committed by Wim Taymans
parent b957d74eb6
commit a0eb12e4be

View file

@ -256,6 +256,9 @@ build_on_ubuntu:
- .fdo.distribution-image@ubuntu - .fdo.distribution-image@ubuntu
- .build - .build
stage: build stage: build
needs:
- job: container_ubuntu
artifacts: false
variables: variables:
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=enabled" MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=enabled"
@ -266,6 +269,9 @@ build_on_ubuntu:
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
- .build - .build
stage: build stage: build
needs:
- job: container_fedora
artifacts: false
build_on_fedora: build_on_fedora:
extends: extends:
@ -358,6 +364,9 @@ build_on_alpine:
- .fdo.distribution-image@alpine - .fdo.distribution-image@alpine
- .build - .build
stage: build stage: build
needs:
- job: container_alpine
artifacts: false
variables: variables:
MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=disabled -Dlogind=enabled -Dlogind-provider=libelogind" MESON_OPTIONS: "-Dsession-managers=[] -Dsnap=disabled -Dlogind=enabled -Dlogind-provider=libelogind"
@ -493,6 +502,9 @@ build_with_coverity:
- .fdo.suffixed-image@fedora - .fdo.suffixed-image@fedora
- .build - .build
stage: analysis stage: analysis
needs:
- job: container_coverity
artifacts: false
script: script:
- export PATH=/opt/coverity/bin:$PATH - export PATH=/opt/coverity/bin:$PATH
- meson setup "$BUILD_DIR" --prefix="$PREFIX" - meson setup "$BUILD_DIR" --prefix="$PREFIX"
@ -568,8 +580,9 @@ check_missing_headers:
- .not_coverity - .not_coverity
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
stage: analysis stage: analysis
dependencies: needs:
- build_on_fedora - job: build_on_fedora
artifacts: true
script: script:
- export PREFIX=`find -name prefix-*` - export PREFIX=`find -name prefix-*`
- ./.gitlab/ci/check_missing_headers.sh - ./.gitlab/ci/check_missing_headers.sh
@ -578,8 +591,9 @@ pages:
extends: extends:
- .not_coverity - .not_coverity
stage: pages stage: pages
dependencies: needs:
- build_on_fedora_html_docs - job: build_on_fedora_html_docs
artifacts: true
script: script:
- mkdir public public/1.0 public/1.2 public/1.4 public/devel - mkdir public public/1.0 public/1.2 public/1.4 public/devel
- cp -R branch-1.0/builddir/doc/html/* public/1.0/ - cp -R branch-1.0/builddir/doc/html/* public/1.0/