qemu/.gitlab-ci.d/custom-runners.yml
<<
>>
Prefs
   1# The CI jobs defined here require GitLab runners installed and
   2# registered on machines that match their operating system names,
   3# versions and architectures.  This is in contrast to the other CI
   4# jobs that are intended to run on GitLab's "shared" runners.
   5
   6# Different than the default approach on "shared" runners, based on
   7# containers, the custom runners have no such *requirement*, as those
   8# jobs should be capable of running on operating systems with no
   9# compatible container implementation, or no support from
  10# gitlab-runner.  To avoid problems that gitlab-runner can cause while
  11# reusing the GIT repository, let's enable the clone strategy, which
  12# guarantees a fresh repository on each job run.
  13variables:
  14  GIT_STRATEGY: clone
  15
  16# All ubuntu-18.04 jobs should run successfully in an environment
  17# setup by the scripts/ci/setup/build-environment.yml task
  18# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
  19ubuntu-18.04-s390x-all-linux-static:
  20 allow_failure: true
  21 needs: []
  22 stage: build
  23 tags:
  24 - ubuntu_18.04
  25 - s390x
  26 rules:
  27 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
  28 - if: "$S390X_RUNNER_AVAILABLE"
  29 script:
  30 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
  31 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
  32 - mkdir build
  33 - cd build
  34 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
  35 - make --output-sync -j`nproc`
  36 - make --output-sync -j`nproc` check V=1
  37 - make --output-sync -j`nproc` check-tcg V=1
  38
  39ubuntu-18.04-s390x-all:
  40 allow_failure: true
  41 needs: []
  42 stage: build
  43 tags:
  44 - ubuntu_18.04
  45 - s390x
  46 rules:
  47 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
  48 - if: "$S390X_RUNNER_AVAILABLE"
  49 script:
  50 - mkdir build
  51 - cd build
  52 - ../configure --disable-libssh
  53 - make --output-sync -j`nproc`
  54 - make --output-sync -j`nproc` check V=1
  55
  56ubuntu-18.04-s390x-alldbg:
  57 allow_failure: true
  58 needs: []
  59 stage: build
  60 tags:
  61 - ubuntu_18.04
  62 - s390x
  63 rules:
  64 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
  65 - if: "$S390X_RUNNER_AVAILABLE"
  66 script:
  67 - mkdir build
  68 - cd build
  69 - ../configure --enable-debug --disable-libssh
  70 - make clean
  71 - make --output-sync -j`nproc`
  72 - make --output-sync -j`nproc` check V=1
  73
  74ubuntu-18.04-s390x-clang:
  75 allow_failure: true
  76 needs: []
  77 stage: build
  78 tags:
  79 - ubuntu_18.04
  80 - s390x
  81 rules:
  82 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
  83   when: manual
  84 - if: "$S390X_RUNNER_AVAILABLE"
  85   when: manual
  86 script:
  87 - mkdir build
  88 - cd build
  89 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers
  90 - make --output-sync -j`nproc`
  91 - make --output-sync -j`nproc` check V=1
  92
  93ubuntu-18.04-s390x-tci:
  94 allow_failure: true
  95 needs: []
  96 stage: build
  97 tags:
  98 - ubuntu_18.04
  99 - s390x
 100 rules:
 101 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 102 - if: "$S390X_RUNNER_AVAILABLE"
 103 script:
 104 - mkdir build
 105 - cd build
 106 - ../configure --disable-libssh --enable-tcg-interpreter
 107 - make --output-sync -j`nproc`
 108
 109ubuntu-18.04-s390x-notcg:
 110 allow_failure: true
 111 needs: []
 112 stage: build
 113 tags:
 114 - ubuntu_18.04
 115 - s390x
 116 rules:
 117 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 118   when: manual
 119 - if: "$S390X_RUNNER_AVAILABLE"
 120   when: manual
 121 script:
 122 - mkdir build
 123 - cd build
 124 - ../configure --disable-libssh --disable-tcg
 125 - make --output-sync -j`nproc`
 126 - make --output-sync -j`nproc` check V=1
 127
 128# All ubuntu-20.04 jobs should run successfully in an environment
 129# setup by the scripts/ci/setup/qemu/build-environment.yml task
 130# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
 131ubuntu-20.04-aarch64-all-linux-static:
 132 allow_failure: true
 133 needs: []
 134 stage: build
 135 tags:
 136 - ubuntu_20.04
 137 - aarch64
 138 rules:
 139 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 140 - if: "$S390X_RUNNER_AVAILABLE"
 141 script:
 142 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763
 143 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages
 144 - mkdir build
 145 - cd build
 146 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh
 147 - make --output-sync -j`nproc`
 148 - make --output-sync -j`nproc` check V=1
 149 - make --output-sync -j`nproc` check-tcg V=1
 150
 151ubuntu-20.04-aarch64-all:
 152 allow_failure: true
 153 needs: []
 154 stage: build
 155 tags:
 156 - ubuntu_20.04
 157 - aarch64
 158 rules:
 159 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 160 - if: "$S390X_RUNNER_AVAILABLE"
 161 script:
 162 - mkdir build
 163 - cd build
 164 - ../configure --disable-libssh
 165 - make --output-sync -j`nproc`
 166 - make --output-sync -j`nproc` check V=1
 167
 168ubuntu-20.04-aarch64-alldbg:
 169 allow_failure: true
 170 needs: []
 171 stage: build
 172 tags:
 173 - ubuntu_20.04
 174 - aarch64
 175 rules:
 176 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 177 - if: "$S390X_RUNNER_AVAILABLE"
 178 script:
 179 - mkdir build
 180 - cd build
 181 - ../configure --enable-debug --disable-libssh
 182 - make clean
 183 - make --output-sync -j`nproc`
 184 - make --output-sync -j`nproc` check V=1
 185
 186ubuntu-20.04-aarch64-clang:
 187 allow_failure: true
 188 needs: []
 189 stage: build
 190 tags:
 191 - ubuntu_20.04
 192 - aarch64
 193 rules:
 194 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 195   when: manual
 196 - if: "$S390X_RUNNER_AVAILABLE"
 197   when: manual
 198 script:
 199 - mkdir build
 200 - cd build
 201 - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers
 202 - make --output-sync -j`nproc`
 203 - make --output-sync -j`nproc` check V=1
 204
 205ubuntu-20.04-aarch64-tci:
 206 allow_failure: true
 207 needs: []
 208 stage: build
 209 tags:
 210 - ubuntu_20.04
 211 - aarch64
 212 rules:
 213 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 214 - if: "$S390X_RUNNER_AVAILABLE"
 215 script:
 216 - mkdir build
 217 - cd build
 218 - ../configure --disable-libssh --enable-tcg-interpreter
 219 - make --output-sync -j`nproc`
 220
 221ubuntu-20.04-aarch64-notcg:
 222 allow_failure: true
 223 needs: []
 224 stage: build
 225 tags:
 226 - ubuntu_20.04
 227 - aarch64
 228 rules:
 229 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
 230   when: manual
 231 - if: "$S390X_RUNNER_AVAILABLE"
 232   when: manual
 233 script:
 234 - mkdir build
 235 - cd build
 236 - ../configure --disable-libssh --disable-tcg
 237 - make --output-sync -j`nproc`
 238 - make --output-sync -j`nproc` check V=1
 239