# 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