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