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