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 needs: [] 21 stage: build 22 tags: 23 - ubuntu_18.04 24 - s390x 25 rules: 26 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 27 - if: "$S390X_RUNNER_AVAILABLE" 28 script: 29 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763 30 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages 31 - mkdir build 32 - cd build 33 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh 34 - make --output-sync -j`nproc` 35 - make --output-sync -j`nproc` check V=1 36 - make --output-sync -j`nproc` check-tcg V=1 37 38ubuntu-18.04-s390x-all: 39 needs: [] 40 stage: build 41 tags: 42 - ubuntu_18.04 43 - s390x 44 rules: 45 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 46 - if: "$S390X_RUNNER_AVAILABLE" 47 script: 48 - mkdir build 49 - cd build 50 - ../configure --disable-libssh 51 - make --output-sync -j`nproc` 52 - make --output-sync -j`nproc` check V=1 53 54ubuntu-18.04-s390x-alldbg: 55 needs: [] 56 stage: build 57 tags: 58 - ubuntu_18.04 59 - s390x 60 rules: 61 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 62 when: manual 63 allow_failure: true 64 - if: "$S390X_RUNNER_AVAILABLE" 65 when: manual 66 allow_failure: true 67 script: 68 - mkdir build 69 - cd build 70 - ../configure --enable-debug --disable-libssh 71 - make clean 72 - make --output-sync -j`nproc` 73 - make --output-sync -j`nproc` check V=1 74 75ubuntu-18.04-s390x-clang: 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 allow_failure: true 85 - if: "$S390X_RUNNER_AVAILABLE" 86 when: manual 87 allow_failure: true 88 script: 89 - mkdir build 90 - cd build 91 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers 92 - make --output-sync -j`nproc` 93 - make --output-sync -j`nproc` check V=1 94 95ubuntu-18.04-s390x-tci: 96 needs: [] 97 stage: build 98 tags: 99 - ubuntu_18.04 100 - s390x 101 rules: 102 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 103 when: manual 104 allow_failure: true 105 - if: "$S390X_RUNNER_AVAILABLE" 106 when: manual 107 allow_failure: true 108 script: 109 - mkdir build 110 - cd build 111 - ../configure --disable-libssh --enable-tcg-interpreter 112 - make --output-sync -j`nproc` 113 114ubuntu-18.04-s390x-notcg: 115 needs: [] 116 stage: build 117 tags: 118 - ubuntu_18.04 119 - s390x 120 rules: 121 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 122 when: manual 123 allow_failure: true 124 - if: "$S390X_RUNNER_AVAILABLE" 125 when: manual 126 allow_failure: true 127 script: 128 - mkdir build 129 - cd build 130 - ../configure --disable-libssh --disable-tcg 131 - make --output-sync -j`nproc` 132 - make --output-sync -j`nproc` check V=1 133 134# All ubuntu-20.04 jobs should run successfully in an environment 135# setup by the scripts/ci/setup/qemu/build-environment.yml task 136# "Install basic packages to build QEMU on Ubuntu 18.04/20.04" 137ubuntu-20.04-aarch64-all-linux-static: 138 needs: [] 139 stage: build 140 tags: 141 - ubuntu_20.04 142 - aarch64 143 rules: 144 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 145 - if: "$AARCH64_RUNNER_AVAILABLE" 146 script: 147 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763 148 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages 149 - mkdir build 150 - cd build 151 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh 152 - make --output-sync -j`nproc` 153 - make --output-sync -j`nproc` check V=1 154 - make --output-sync -j`nproc` check-tcg V=1 155 156ubuntu-20.04-aarch64-all: 157 needs: [] 158 stage: build 159 tags: 160 - ubuntu_20.04 161 - aarch64 162 rules: 163 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 164 when: manual 165 allow_failure: true 166 - if: "$AARCH64_RUNNER_AVAILABLE" 167 when: manual 168 allow_failure: true 169 script: 170 - mkdir build 171 - cd build 172 - ../configure --disable-libssh 173 - make --output-sync -j`nproc` 174 - make --output-sync -j`nproc` check V=1 175 176ubuntu-20.04-aarch64-alldbg: 177 needs: [] 178 stage: build 179 tags: 180 - ubuntu_20.04 181 - aarch64 182 rules: 183 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 184 - if: "$AARCH64_RUNNER_AVAILABLE" 185 script: 186 - mkdir build 187 - cd build 188 - ../configure --enable-debug --disable-libssh 189 - make clean 190 - make --output-sync -j`nproc` 191 - make --output-sync -j`nproc` check V=1 192 193ubuntu-20.04-aarch64-clang: 194 needs: [] 195 stage: build 196 tags: 197 - ubuntu_20.04 198 - aarch64 199 rules: 200 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 201 when: manual 202 allow_failure: true 203 - if: "$AARCH64_RUNNER_AVAILABLE" 204 when: manual 205 allow_failure: true 206 script: 207 - mkdir build 208 - cd build 209 - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers 210 - make --output-sync -j`nproc` 211 - make --output-sync -j`nproc` check V=1 212 213ubuntu-20.04-aarch64-tci: 214 needs: [] 215 stage: build 216 tags: 217 - ubuntu_20.04 218 - aarch64 219 rules: 220 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 221 when: manual 222 allow_failure: true 223 - if: "$AARCH64_RUNNER_AVAILABLE" 224 when: manual 225 allow_failure: true 226 script: 227 - mkdir build 228 - cd build 229 - ../configure --disable-libssh --enable-tcg-interpreter 230 - make --output-sync -j`nproc` 231 232ubuntu-20.04-aarch64-notcg: 233 needs: [] 234 stage: build 235 tags: 236 - ubuntu_20.04 237 - aarch64 238 rules: 239 - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' 240 when: manual 241 allow_failure: true 242 - if: "$AARCH64_RUNNER_AVAILABLE" 243 when: manual 244 allow_failure: true 245 script: 246 - mkdir build 247 - cd build 248 - ../configure --disable-libssh --disable-tcg 249 - make --output-sync -j`nproc` 250 - make --output-sync -j`nproc` check V=1 251