Most of the test is pure boilerplate so to save ourselves from repetition move all the main bits into a minimal copy of native_build_job_template but without the caching.
We keep all the current allow_fail, manual and configure setups but do take the opportunity to replace the inline nproc calls to using a common JOBS variable. We also fix the namespace check to use the QEMU_CI_UPSTREAM variable. Reviewed-by: Daniel P. Berrangé <[email protected]> Message-ID: <[email protected]> Signed-off-by: Alex Bennée <[email protected]> diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml index 45dbee17880..2fc940e127c 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml @@ -2,129 +2,84 @@ # setup by the scripts/ci/setup/ubuntu/build-environment.yml task # "Install basic packages to build QEMU on Ubuntu 24.04" +.ubuntu_s390x_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - ubuntu_24.04 + - s390x + rules: + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: "$S390X_RUNNER_AVAILABLE" + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) - 1) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt; exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + ubuntu-24.04-s390x-all-linux: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$S390X_RUNNER_AVAILABLE" - script: - - mkdir build - - cd build - - ../configure --enable-debug --disable-system --disable-tools --disable-docs - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync check-tcg - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug --disable-system --disable-tools --disable-docs + MAKE_CHECK_ARGS: check-tcg check ubuntu-24.04-s390x-all-system: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - timeout: 75m - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-user - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-user + MAKE_CHECK_ARGS: check + allow_failure: true ubuntu-24.04-s390x-alldbg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-debug - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make clean - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-clang: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --cc=clang --cxx=clang++ --enable-ubsan - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-tci: - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-tcg-interpreter - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-tcg-interpreter + allow_failure: true + when: manual ubuntu-24.04-s390x-notcg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-tcg - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-tcg + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual -- 2.47.3
