| # 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: |
| allow_failure: true |
| 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: |
| allow_failure: true |
| 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: |
| allow_failure: true |
| 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 --enable-debug --disable-libssh |
| - make clean |
| - make --output-sync -j`nproc` |
| - make --output-sync -j`nproc` check V=1 |
| |
| ubuntu-18.04-s390x-clang: |
| allow_failure: true |
| 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: |
| allow_failure: true |
| 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 --enable-tcg-interpreter |
| - make --output-sync -j`nproc` |
| |
| ubuntu-18.04-s390x-notcg: |
| allow_failure: true |
| 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: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| 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-20.04-aarch64-all: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| 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-20.04-aarch64-alldbg: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| rules: |
| - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' |
| - if: "$S390X_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: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| 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-10 --cxx=clang++-10 --enable-sanitizers |
| - make --output-sync -j`nproc` |
| - make --output-sync -j`nproc` check V=1 |
| |
| ubuntu-20.04-aarch64-tci: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| rules: |
| - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' |
| - if: "$S390X_RUNNER_AVAILABLE" |
| script: |
| - mkdir build |
| - cd build |
| - ../configure --disable-libssh --enable-tcg-interpreter |
| - make --output-sync -j`nproc` |
| |
| ubuntu-20.04-aarch64-notcg: |
| allow_failure: true |
| needs: [] |
| stage: build |
| tags: |
| - ubuntu_20.04 |
| - aarch64 |
| 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 |