From: Alex Bennée Date: Mon, 17 Nov 2025 11:55:18 +0000 (+0000) Subject: gitlab: use template for ubuntu-24.04-s390x jobs X-Git-Tag: v10.2.0-rc1~6^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea55bfc3a9fa6803944e5bbf758e488aaa294f6b;p=thirdparty%2Fqemu.git gitlab: use template for ubuntu-24.04-s390x jobs 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é Message-ID: <20251117115523.3993105-14-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- 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 45dbee1788..2fc940e127 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