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