summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrangé2021-02-16 14:29:53 +0100
committerThomas Huth2021-02-19 06:29:05 +0100
commit764a0747a7540ee216421c3f95de8ae46a433dab (patch)
treed8c6cd10e95a6c5df35d927b206044b2de90044a
parentgitlab: always build container images (diff)
downloadqemu-764a0747a7540ee216421c3f95de8ae46a433dab.tar.gz
qemu-764a0747a7540ee216421c3f95de8ae46a433dab.tar.xz
qemu-764a0747a7540ee216421c3f95de8ae46a433dab.zip
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>
-rw-r--r--.gitlab-ci.d/crossbuilds.yml46
-rw-r--r--.gitlab-ci.yml58
2 files changed, 104 insertions, 0 deletions
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 66547b6683..d5098c986b 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -41,114 +41,158 @@
cross-armel-system:
extends: .cross_system_build_job
+ needs:
+ job: armel-debian-cross-container
variables:
IMAGE: debian-armel-cross
cross-armel-user:
extends: .cross_user_build_job
+ needs:
+ job: armel-debian-cross-container
variables:
IMAGE: debian-armel-cross
cross-armhf-system:
extends: .cross_system_build_job
+ needs:
+ job: armhf-debian-cross-container
variables:
IMAGE: debian-armhf-cross
cross-armhf-user:
extends: .cross_user_build_job
+ needs:
+ job: armhf-debian-cross-container
variables:
IMAGE: debian-armhf-cross
cross-arm64-system:
extends: .cross_system_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
cross-arm64-user:
extends: .cross_user_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
cross-i386-system:
extends: .cross_system_build_job
+ needs:
+ job: i386-fedora-cross-container
variables:
IMAGE: fedora-i386-cross
MAKE_CHECK_ARGS: check-qtest
cross-i386-user:
extends: .cross_user_build_job
+ needs:
+ job: i386-fedora-cross-container
variables:
IMAGE: fedora-i386-cross
MAKE_CHECK_ARGS: check
cross-mips-system:
extends: .cross_system_build_job
+ needs:
+ job: mips-debian-cross-container
variables:
IMAGE: debian-mips-cross
cross-mips-user:
extends: .cross_user_build_job
+ needs:
+ job: mips-debian-cross-container
variables:
IMAGE: debian-mips-cross
cross-mipsel-system:
extends: .cross_system_build_job
+ needs:
+ job: mipsel-debian-cross-container
variables:
IMAGE: debian-mipsel-cross
cross-mipsel-user:
extends: .cross_user_build_job
+ needs:
+ job: mipsel-debian-cross-container
variables:
IMAGE: debian-mipsel-cross
cross-mips64el-system:
extends: .cross_system_build_job
+ needs:
+ job: mips64el-debian-cross-container
variables:
IMAGE: debian-mips64el-cross
cross-mips64el-user:
extends: .cross_user_build_job
+ needs:
+ job: mips64el-debian-cross-container
variables:
IMAGE: debian-mips64el-cross
cross-ppc64el-system:
extends: .cross_system_build_job
+ needs:
+ job: ppc64el-debian-cross-container
variables:
IMAGE: debian-ppc64el-cross
cross-ppc64el-user:
extends: .cross_user_build_job
+ needs:
+ job: ppc64el-debian-cross-container
variables:
IMAGE: debian-ppc64el-cross
cross-s390x-system:
extends: .cross_system_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
cross-s390x-user:
extends: .cross_user_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
cross-s390x-kvm-only:
extends: .cross_accel_build_job
+ needs:
+ job: s390x-debian-cross-container
variables:
IMAGE: debian-s390x-cross
ACCEL_CONFIGURE_OPTS: --disable-tcg
cross-win32-system:
extends: .cross_system_build_job
+ needs:
+ job: win32-fedora-cross-container
variables:
IMAGE: fedora-win32-cross
cross-win64-system:
extends: .cross_system_build_job
+ needs:
+ job: win64-fedora-cross-container
variables:
IMAGE: fedora-win64-cross
cross-amd64-xen-only:
extends: .cross_accel_build_job
+ needs:
+ job: amd64-debian-cross-container
variables:
IMAGE: debian-amd64-cross
ACCEL: xen
@@ -156,6 +200,8 @@ cross-amd64-xen-only:
cross-arm64-xen-only:
extends: .cross_accel_build_job
+ needs:
+ job: arm64-debian-cross-container
variables:
IMAGE: debian-arm64-cross
ACCEL: xen
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7adb9a4cef..32cc6bd4a2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -109,6 +109,8 @@ acceptance-system-alpine:
build-system-ubuntu:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
@@ -141,6 +143,8 @@ acceptance-system-ubuntu:
build-system-debian:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-container
variables:
IMAGE: debian-amd64
CONFIGURE_ARGS: --enable-fdt=system
@@ -186,6 +190,8 @@ acceptance-system-debian:
build-system-fedora:
<<: *native_build_job_definition
+ needs:
+ job: amd64-fedora-container
variables:
IMAGE: fedora
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
@@ -219,6 +225,8 @@ acceptance-system-fedora:
build-system-centos:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos8-container
variables:
IMAGE: centos8
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
@@ -252,6 +260,8 @@ acceptance-system-centos:
build-system-opensuse:
<<: *native_build_job_definition
+ needs:
+ job: amd64-opensuse-leap-container
variables:
IMAGE: opensuse-leap
CONFIGURE_ARGS: --enable-fdt=system
@@ -284,6 +294,8 @@ acceptance-system-opensuse:
build-disabled:
<<: *native_build_job_definition
+ needs:
+ job: amd64-fedora-container
variables:
IMAGE: fedora
CONFIGURE_ARGS:
@@ -366,6 +378,8 @@ build-disabled:
# available.
build-tcg-disabled:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos8-container
variables:
IMAGE: centos8
script:
@@ -386,6 +400,8 @@ build-tcg-disabled:
build-user:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-system
@@ -393,6 +409,8 @@ build-user:
build-user-static:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
IMAGE: debian-all-test-cross
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
build-some-softmmu:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
IMAGE: debian-all-test-cross
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
build-user-plugins:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
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
@@ -427,6 +449,8 @@ build-user-centos7:
build-some-softmmu-plugins:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
@@ -435,6 +459,8 @@ build-some-softmmu-plugins:
clang-system:
<<: *native_build_job_definition
+ needs:
+ job: amd64-fedora-container
variables:
IMAGE: fedora
CONFIGURE_ARGS: --cc=clang --cxx=clang++
@@ -464,6 +490,8 @@ tsan-build:
# These targets are on the way out
build-deprecated:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-user-cross-container
variables:
IMAGE: debian-all-test-cross
CONFIGURE_ARGS: --disable-docs --disable-tools
@@ -501,6 +529,8 @@ gprof-gcov:
build-oss-fuzz:
<<: *native_build_job_definition
+ needs:
+ job: amd64-fedora-container
variables:
IMAGE: fedora
script:
@@ -519,6 +549,8 @@ build-oss-fuzz:
build-tci:
<<: *native_build_job_definition
+ needs:
+ job: amd64-fedora-container
variables:
IMAGE: fedora
script:
@@ -542,6 +574,8 @@ build-tci:
# However we can't test against KVM on Gitlab-CI so we can only run unit tests
build-coroutine-ucontext:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
@@ -549,6 +583,8 @@ build-coroutine-ucontext:
build-coroutine-sigaltstack:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
@@ -560,6 +596,8 @@ build-coroutine-sigaltstack:
# which had some API differences.
build-crypto-old-nettle:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos7-container
variables:
IMAGE: centos7
TARGETS: x86_64-softmmu x86_64-linux-user
@@ -581,6 +619,8 @@ check-crypto-old-nettle:
build-crypto-old-gcrypt:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos7-container
variables:
IMAGE: centos7
TARGETS: x86_64-softmmu x86_64-linux-user
@@ -602,6 +642,8 @@ check-crypto-old-gcrypt:
build-crypto-only-gnutls:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos7-container
variables:
IMAGE: centos7
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
build-trace-multi-user:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
build-trace-ftrace-system:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
build-trace-ust-system:
<<: *native_build_job_definition
+ needs:
+ job: amd64-ubuntu2004-container
variables:
IMAGE: ubuntu2004
CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
@@ -642,12 +690,16 @@ build-trace-ust-system:
# Check our reduced build configurations
build-without-default-devices:
<<: *native_build_job_definition
+ needs:
+ job: amd64-centos8-container
variables:
IMAGE: centos8
CONFIGURE_ARGS: --without-default-devices --disable-user
build-without-default-features:
<<: *native_build_job_definition
+ needs:
+ job: amd64-debian-container
variables:
IMAGE: debian-amd64
CONFIGURE_ARGS: --without-default-features --disable-user
@@ -657,6 +709,8 @@ build-without-default-features:
check-patch:
stage: build
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
+ needs:
+ job: amd64-centos8-container
script: .gitlab-ci.d/check-patch.py
except:
variables:
@@ -668,6 +722,8 @@ check-patch:
check-dco:
stage: build
image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
+ needs:
+ job: amd64-centos8-container
script: .gitlab-ci.d/check-dco.py
except:
variables:
@@ -678,6 +734,8 @@ check-dco:
build-libvhost-user:
stage: build
image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
+ needs:
+ job: amd64-fedora-container
before_script:
- dnf install -y meson ninja-build
script: