Currently we define a lot of jobs for our custom runners: for both aarch64 and s390x we have - all-linux-static - all - alldbg - clang (manual) - tci - notcg (manual) This is overkill. The main reason to run on these hosts is to get coverage for the host architecture; we can leave the handling of differences like debug vs non-debug to the x86 CI jobs. The jobs are also generally running OK; they occasionally fail due to timeouts, which is likely because we're overloading the machine by asking it to run 4 CI jobs at once plus the ad-hoc CI. Remove the 'allow_failure' tag from all these jobs, and switch the s390x-alldbg, aarch64-all, s390x-tci and aarch64-tci jobs to manual. (We keep -all on s390x and -alldbg on aarch64 just for diversity of coverage.) This will let us make the switch for s390x and aarch64 hosts from the ad-hoc CI to gitlab. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Willian Rampazzo <willianr@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Acked-by: Thomas Huth <thuth@redhat.com> Message-id: 20210913101948.12600-1-peter.maydell@linaro.org
235 lines
6.3 KiB
YAML
235 lines
6.3 KiB
YAML
# The CI jobs defined here require GitLab runners installed and
|
|
# registered on machines that match their operating system names,
|
|
# versions and architectures. This is in contrast to the other CI
|
|
# jobs that are intended to run on GitLab's "shared" runners.
|
|
|
|
# Different than the default approach on "shared" runners, based on
|
|
# containers, the custom runners have no such *requirement*, as those
|
|
# jobs should be capable of running on operating systems with no
|
|
# compatible container implementation, or no support from
|
|
# gitlab-runner. To avoid problems that gitlab-runner can cause while
|
|
# reusing the GIT repository, let's enable the clone strategy, which
|
|
# guarantees a fresh repository on each job run.
|
|
variables:
|
|
GIT_STRATEGY: clone
|
|
|
|
# All ubuntu-18.04 jobs should run successfully in an environment
|
|
# setup by the scripts/ci/setup/build-environment.yml task
|
|
# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
|
|
ubuntu-18.04-s390x-all-linux-static:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
script:
|
|
# --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
|
|
# --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
- make --output-sync -j`nproc` check-tcg V=1
|
|
|
|
ubuntu-18.04-s390x-all:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-18.04-s390x-alldbg:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --enable-debug --disable-libssh
|
|
- make clean
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-18.04-s390x-clang:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-18.04-s390x-tci:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --enable-tcg-interpreter
|
|
- make --output-sync -j`nproc`
|
|
|
|
ubuntu-18.04-s390x-notcg:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_18.04
|
|
- s390x
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$S390X_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --disable-tcg
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
# All ubuntu-20.04 jobs should run successfully in an environment
|
|
# setup by the scripts/ci/setup/qemu/build-environment.yml task
|
|
# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
|
|
ubuntu-20.04-aarch64-all-linux-static:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
script:
|
|
# --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
|
|
# --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
- make --output-sync -j`nproc` check-tcg V=1
|
|
|
|
ubuntu-20.04-aarch64-all:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-20.04-aarch64-alldbg:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --enable-debug --disable-libssh
|
|
- make clean
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-20.04-aarch64-clang:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|
|
|
|
ubuntu-20.04-aarch64-tci:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --enable-tcg-interpreter
|
|
- make --output-sync -j`nproc`
|
|
|
|
ubuntu-20.04-aarch64-notcg:
|
|
needs: []
|
|
stage: build
|
|
tags:
|
|
- ubuntu_20.04
|
|
- aarch64
|
|
rules:
|
|
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
|
|
when: manual
|
|
- if: "$AARCH64_RUNNER_AVAILABLE"
|
|
when: manual
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../configure --disable-libssh --disable-tcg
|
|
- make --output-sync -j`nproc`
|
|
- make --output-sync -j`nproc` check V=1
|