gitlab: add fine grained job deps for all build jobs

This allows the build jobs to start running as soon as their respective
container image is ready, instead of waiting for all container builds
to finish.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210216132954.295906-3-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-02-16 13:29:53 +00:00 committed by Thomas Huth
parent c31fa24e96
commit 764a0747a7
2 changed files with 104 additions and 0 deletions

View File

@ -41,114 +41,158 @@
cross-armel-system: cross-armel-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: armel-debian-cross-container
variables: variables:
IMAGE: debian-armel-cross IMAGE: debian-armel-cross
cross-armel-user: cross-armel-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: armel-debian-cross-container
variables: variables:
IMAGE: debian-armel-cross IMAGE: debian-armel-cross
cross-armhf-system: cross-armhf-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: armhf-debian-cross-container
variables: variables:
IMAGE: debian-armhf-cross IMAGE: debian-armhf-cross
cross-armhf-user: cross-armhf-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: armhf-debian-cross-container
variables: variables:
IMAGE: debian-armhf-cross IMAGE: debian-armhf-cross
cross-arm64-system: cross-arm64-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: arm64-debian-cross-container
variables: variables:
IMAGE: debian-arm64-cross IMAGE: debian-arm64-cross
cross-arm64-user: cross-arm64-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: arm64-debian-cross-container
variables: variables:
IMAGE: debian-arm64-cross IMAGE: debian-arm64-cross
cross-i386-system: cross-i386-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: i386-fedora-cross-container
variables: variables:
IMAGE: fedora-i386-cross IMAGE: fedora-i386-cross
MAKE_CHECK_ARGS: check-qtest MAKE_CHECK_ARGS: check-qtest
cross-i386-user: cross-i386-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: i386-fedora-cross-container
variables: variables:
IMAGE: fedora-i386-cross IMAGE: fedora-i386-cross
MAKE_CHECK_ARGS: check MAKE_CHECK_ARGS: check
cross-mips-system: cross-mips-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: mips-debian-cross-container
variables: variables:
IMAGE: debian-mips-cross IMAGE: debian-mips-cross
cross-mips-user: cross-mips-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: mips-debian-cross-container
variables: variables:
IMAGE: debian-mips-cross IMAGE: debian-mips-cross
cross-mipsel-system: cross-mipsel-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: mipsel-debian-cross-container
variables: variables:
IMAGE: debian-mipsel-cross IMAGE: debian-mipsel-cross
cross-mipsel-user: cross-mipsel-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: mipsel-debian-cross-container
variables: variables:
IMAGE: debian-mipsel-cross IMAGE: debian-mipsel-cross
cross-mips64el-system: cross-mips64el-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: mips64el-debian-cross-container
variables: variables:
IMAGE: debian-mips64el-cross IMAGE: debian-mips64el-cross
cross-mips64el-user: cross-mips64el-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: mips64el-debian-cross-container
variables: variables:
IMAGE: debian-mips64el-cross IMAGE: debian-mips64el-cross
cross-ppc64el-system: cross-ppc64el-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: ppc64el-debian-cross-container
variables: variables:
IMAGE: debian-ppc64el-cross IMAGE: debian-ppc64el-cross
cross-ppc64el-user: cross-ppc64el-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: ppc64el-debian-cross-container
variables: variables:
IMAGE: debian-ppc64el-cross IMAGE: debian-ppc64el-cross
cross-s390x-system: cross-s390x-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: s390x-debian-cross-container
variables: variables:
IMAGE: debian-s390x-cross IMAGE: debian-s390x-cross
cross-s390x-user: cross-s390x-user:
extends: .cross_user_build_job extends: .cross_user_build_job
needs:
job: s390x-debian-cross-container
variables: variables:
IMAGE: debian-s390x-cross IMAGE: debian-s390x-cross
cross-s390x-kvm-only: cross-s390x-kvm-only:
extends: .cross_accel_build_job extends: .cross_accel_build_job
needs:
job: s390x-debian-cross-container
variables: variables:
IMAGE: debian-s390x-cross IMAGE: debian-s390x-cross
ACCEL_CONFIGURE_OPTS: --disable-tcg ACCEL_CONFIGURE_OPTS: --disable-tcg
cross-win32-system: cross-win32-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: win32-fedora-cross-container
variables: variables:
IMAGE: fedora-win32-cross IMAGE: fedora-win32-cross
cross-win64-system: cross-win64-system:
extends: .cross_system_build_job extends: .cross_system_build_job
needs:
job: win64-fedora-cross-container
variables: variables:
IMAGE: fedora-win64-cross IMAGE: fedora-win64-cross
cross-amd64-xen-only: cross-amd64-xen-only:
extends: .cross_accel_build_job extends: .cross_accel_build_job
needs:
job: amd64-debian-cross-container
variables: variables:
IMAGE: debian-amd64-cross IMAGE: debian-amd64-cross
ACCEL: xen ACCEL: xen
@ -156,6 +200,8 @@ cross-amd64-xen-only:
cross-arm64-xen-only: cross-arm64-xen-only:
extends: .cross_accel_build_job extends: .cross_accel_build_job
needs:
job: arm64-debian-cross-container
variables: variables:
IMAGE: debian-arm64-cross IMAGE: debian-arm64-cross
ACCEL: xen ACCEL: xen

View File

@ -109,6 +109,8 @@ acceptance-system-alpine:
build-system-ubuntu: build-system-ubuntu:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
@ -141,6 +143,8 @@ acceptance-system-ubuntu:
build-system-debian: build-system-debian:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-container
variables: variables:
IMAGE: debian-amd64 IMAGE: debian-amd64
CONFIGURE_ARGS: --enable-fdt=system CONFIGURE_ARGS: --enable-fdt=system
@ -186,6 +190,8 @@ acceptance-system-debian:
build-system-fedora: build-system-fedora:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-fedora-container
variables: variables:
IMAGE: fedora IMAGE: fedora
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
@ -219,6 +225,8 @@ acceptance-system-fedora:
build-system-centos: build-system-centos:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos8-container
variables: variables:
IMAGE: centos8 IMAGE: centos8
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
@ -252,6 +260,8 @@ acceptance-system-centos:
build-system-opensuse: build-system-opensuse:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-opensuse-leap-container
variables: variables:
IMAGE: opensuse-leap IMAGE: opensuse-leap
CONFIGURE_ARGS: --enable-fdt=system CONFIGURE_ARGS: --enable-fdt=system
@ -284,6 +294,8 @@ acceptance-system-opensuse:
build-disabled: build-disabled:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-fedora-container
variables: variables:
IMAGE: fedora IMAGE: fedora
CONFIGURE_ARGS: CONFIGURE_ARGS:
@ -366,6 +378,8 @@ build-disabled:
# available. # available.
build-tcg-disabled: build-tcg-disabled:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos8-container
variables: variables:
IMAGE: centos8 IMAGE: centos8
script: script:
@ -386,6 +400,8 @@ build-tcg-disabled:
build-user: build-user:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-system CONFIGURE_ARGS: --disable-tools --disable-system
@ -393,6 +409,8 @@ build-user:
build-user-static: build-user-static:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-system --static CONFIGURE_ARGS: --disable-tools --disable-system --static
@ -401,6 +419,8 @@ build-user-static:
# Only build the softmmu targets we have check-tcg tests for # Only build the softmmu targets we have check-tcg tests for
build-some-softmmu: build-some-softmmu:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --enable-debug CONFIGURE_ARGS: --disable-tools --enable-debug
@ -412,6 +432,8 @@ build-some-softmmu:
# we skip cris-linux-user as it doesn't use the common run loop # we skip cris-linux-user as it doesn't use the common run loop
build-user-plugins: build-user-plugins:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
@ -427,6 +449,8 @@ build-user-centos7:
build-some-softmmu-plugins: build-some-softmmu-plugins:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
@ -435,6 +459,8 @@ build-some-softmmu-plugins:
clang-system: clang-system:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-fedora-container
variables: variables:
IMAGE: fedora IMAGE: fedora
CONFIGURE_ARGS: --cc=clang --cxx=clang++ CONFIGURE_ARGS: --cc=clang --cxx=clang++
@ -464,6 +490,8 @@ tsan-build:
# These targets are on the way out # These targets are on the way out
build-deprecated: build-deprecated:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-user-cross-container
variables: variables:
IMAGE: debian-all-test-cross IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-docs --disable-tools CONFIGURE_ARGS: --disable-docs --disable-tools
@ -501,6 +529,8 @@ gprof-gcov:
build-oss-fuzz: build-oss-fuzz:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-fedora-container
variables: variables:
IMAGE: fedora IMAGE: fedora
script: script:
@ -519,6 +549,8 @@ build-oss-fuzz:
build-tci: build-tci:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-fedora-container
variables: variables:
IMAGE: fedora IMAGE: fedora
script: script:
@ -542,6 +574,8 @@ build-tci:
# However we can't test against KVM on Gitlab-CI so we can only run unit tests # However we can't test against KVM on Gitlab-CI so we can only run unit tests
build-coroutine-ucontext: build-coroutine-ucontext:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
@ -549,6 +583,8 @@ build-coroutine-ucontext:
build-coroutine-sigaltstack: build-coroutine-sigaltstack:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
@ -560,6 +596,8 @@ build-coroutine-sigaltstack:
# which had some API differences. # which had some API differences.
build-crypto-old-nettle: build-crypto-old-nettle:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos7-container
variables: variables:
IMAGE: centos7 IMAGE: centos7
TARGETS: x86_64-softmmu x86_64-linux-user TARGETS: x86_64-softmmu x86_64-linux-user
@ -581,6 +619,8 @@ check-crypto-old-nettle:
build-crypto-old-gcrypt: build-crypto-old-gcrypt:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos7-container
variables: variables:
IMAGE: centos7 IMAGE: centos7
TARGETS: x86_64-softmmu x86_64-linux-user TARGETS: x86_64-softmmu x86_64-linux-user
@ -602,6 +642,8 @@ check-crypto-old-gcrypt:
build-crypto-only-gnutls: build-crypto-only-gnutls:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos7-container
variables: variables:
IMAGE: centos7 IMAGE: centos7
TARGETS: x86_64-softmmu x86_64-linux-user TARGETS: x86_64-softmmu x86_64-linux-user
@ -623,18 +665,24 @@ check-crypto-only-gnutls:
# We don't need to exercise every backend with every front-end # We don't need to exercise every backend with every front-end
build-trace-multi-user: build-trace-multi-user:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
build-trace-ftrace-system: build-trace-ftrace-system:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
build-trace-ust-system: build-trace-ust-system:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-ubuntu2004-container
variables: variables:
IMAGE: ubuntu2004 IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
@ -642,12 +690,16 @@ build-trace-ust-system:
# Check our reduced build configurations # Check our reduced build configurations
build-without-default-devices: build-without-default-devices:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-centos8-container
variables: variables:
IMAGE: centos8 IMAGE: centos8
CONFIGURE_ARGS: --without-default-devices --disable-user CONFIGURE_ARGS: --without-default-devices --disable-user
build-without-default-features: build-without-default-features:
<<: *native_build_job_definition <<: *native_build_job_definition
needs:
job: amd64-debian-container
variables: variables:
IMAGE: debian-amd64 IMAGE: debian-amd64
CONFIGURE_ARGS: --without-default-features --disable-user CONFIGURE_ARGS: --without-default-features --disable-user
@ -657,6 +709,8 @@ build-without-default-features:
check-patch: check-patch:
stage: build stage: build
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
needs:
job: amd64-centos8-container
script: .gitlab-ci.d/check-patch.py script: .gitlab-ci.d/check-patch.py
except: except:
variables: variables:
@ -668,6 +722,8 @@ check-patch:
check-dco: check-dco:
stage: build stage: build
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
needs:
job: amd64-centos8-container
script: .gitlab-ci.d/check-dco.py script: .gitlab-ci.d/check-dco.py
except: except:
variables: variables:
@ -678,6 +734,8 @@ check-dco:
build-libvhost-user: build-libvhost-user:
stage: build stage: build
image: $CI_REGISTRY_IMAGE/qemu/fedora:latest image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
needs:
job: amd64-fedora-container
before_script: before_script:
- dnf install -y meson ninja-build - dnf install -y meson ninja-build
script: script: