# 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 allow_failure: true - if: "$S390X_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$S390X_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$S390X_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$S390X_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$AARCH64_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$AARCH64_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$AARCH64_RUNNER_AVAILABLE" when: manual allow_failure: true 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 allow_failure: true - if: "$AARCH64_RUNNER_AVAILABLE" when: manual allow_failure: true script: - mkdir build - cd build - ../configure --disable-libssh --disable-tcg - make --output-sync -j`nproc` - make --output-sync -j`nproc` check V=1