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_COMMIT_BRANCH =~ /^staging/' 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 allow_failure: true 40 needs: [] 41 stage: build 42 tags: 43 - ubuntu_18.04 44 - s390x 45 rules: 46 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 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 allow_failure: true 56 needs: [] 57 stage: build 58 tags: 59 - ubuntu_18.04 60 - s390x 61 rules: 62 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 63 script: 64 - mkdir build 65 - cd build 66 - ../configure --enable-debug --disable-libssh 67 - make clean 68 - make --output-sync -j`nproc` 69 - make --output-sync -j`nproc` check V=1 70 71ubuntu-18.04-s390x-clang: 72 allow_failure: true 73 needs: [] 74 stage: build 75 tags: 76 - ubuntu_18.04 77 - s390x 78 rules: 79 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 80 when: manual 81 script: 82 - mkdir build 83 - cd build 84 - ../configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers 85 - make --output-sync -j`nproc` 86 - make --output-sync -j`nproc` check V=1 87 88ubuntu-18.04-s390x-tci: 89 allow_failure: true 90 needs: [] 91 stage: build 92 tags: 93 - ubuntu_18.04 94 - s390x 95 rules: 96 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 97 script: 98 - mkdir build 99 - cd build 100 - ../configure --disable-libssh --enable-tcg-interpreter 101 - make --output-sync -j`nproc` 102 103ubuntu-18.04-s390x-notcg: 104 allow_failure: true 105 needs: [] 106 stage: build 107 tags: 108 - ubuntu_18.04 109 - s390x 110 rules: 111 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 112 when: manual 113 script: 114 - mkdir build 115 - cd build 116 - ../configure --disable-libssh --disable-tcg 117 - make --output-sync -j`nproc` 118 - make --output-sync -j`nproc` check V=1 119 120# All ubuntu-20.04 jobs should run successfully in an environment 121# setup by the scripts/ci/setup/qemu/build-environment.yml task 122# "Install basic packages to build QEMU on Ubuntu 18.04/20.04" 123ubuntu-20.04-aarch64-all-linux-static: 124 allow_failure: true 125 needs: [] 126 stage: build 127 tags: 128 - ubuntu_20.04 129 - aarch64 130 rules: 131 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 132 script: 133 # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763 134 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages 135 - mkdir build 136 - cd build 137 - ../configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh 138 - make --output-sync -j`nproc` 139 - make --output-sync -j`nproc` check V=1 140 - make --output-sync -j`nproc` check-tcg V=1 141 142ubuntu-20.04-aarch64-all: 143 allow_failure: true 144 needs: [] 145 stage: build 146 tags: 147 - ubuntu_20.04 148 - aarch64 149 rules: 150 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 151 script: 152 - mkdir build 153 - cd build 154 - ../configure --disable-libssh 155 - make --output-sync -j`nproc` 156 - make --output-sync -j`nproc` check V=1 157 158ubuntu-20.04-aarch64-alldbg: 159 allow_failure: true 160 needs: [] 161 stage: build 162 tags: 163 - ubuntu_20.04 164 - aarch64 165 rules: 166 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 167 script: 168 - mkdir build 169 - cd build 170 - ../configure --enable-debug --disable-libssh 171 - make clean 172 - make --output-sync -j`nproc` 173 - make --output-sync -j`nproc` check V=1 174 175ubuntu-20.04-aarch64-clang: 176 allow_failure: true 177 needs: [] 178 stage: build 179 tags: 180 - ubuntu_20.04 181 - aarch64 182 rules: 183 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 184 when: manual 185 script: 186 - mkdir build 187 - cd build 188 - ../configure --disable-libssh --cc=clang-10 --cxx=clang++-10 --enable-sanitizers 189 - make --output-sync -j`nproc` 190 - make --output-sync -j`nproc` check V=1 191 192ubuntu-20.04-aarch64-tci: 193 allow_failure: true 194 needs: [] 195 stage: build 196 tags: 197 - ubuntu_20.04 198 - aarch64 199 rules: 200 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 201 script: 202 - mkdir build 203 - cd build 204 - ../configure --disable-libssh --enable-tcg-interpreter 205 - make --output-sync -j`nproc` 206 207ubuntu-20.04-aarch64-notcg: 208 allow_failure: true 209 needs: [] 210 stage: build 211 tags: 212 - ubuntu_20.04 213 - aarch64 214 rules: 215 - if: '$CI_COMMIT_BRANCH =~ /^staging/' 216 when: manual 217 script: 218 - mkdir build 219 - cd build 220 - ../configure --disable-libssh --disable-tcg 221 - make --output-sync -j`nproc` 222 - make --output-sync -j`nproc` check V=1 223