diff options
author | Daniel P. Berrangé | 2021-02-16 14:29:53 +0100 |
---|---|---|
committer | Thomas Huth | 2021-02-19 06:29:05 +0100 |
commit | 764a0747a7540ee216421c3f95de8ae46a433dab (patch) | |
tree | d8c6cd10e95a6c5df35d927b206044b2de90044a | |
parent | gitlab: always build container images (diff) | |
download | qemu-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.yml | 46 | ||||
-rw-r--r-- | .gitlab-ci.yml | 58 |
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: |