1# Currently we have two build stages after our containers are built: 2# - build (for traditional build and test or first stage build) 3# - test (for test stages, using build artefacts from a build stage) 4stages: 5 - containers 6 - containers-layer2 7 - containers-layer3 8 - build 9 - test 10 11include: 12 - local: '/.gitlab-ci.d/edk2.yml' 13 - local: '/.gitlab-ci.d/opensbi.yml' 14 - local: '/.gitlab-ci.d/containers.yml' 15 16.native_build_job_template: &native_build_job_definition 17 stage: build 18 image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest 19 before_script: 20 - JOBS=$(expr $(nproc) + 1) 21 script: 22 - mkdir build 23 - cd build 24 - if test -n "$TARGETS"; 25 then 26 ../configure --enable-werror $CONFIGURE_ARGS --target-list="$TARGETS" ; 27 else 28 ../configure --enable-werror $CONFIGURE_ARGS ; 29 fi 30 - make -j"$JOBS" 31 - if test -n "$MAKE_CHECK_ARGS"; 32 then 33 make $MAKE_CHECK_ARGS ; 34 fi 35 36.native_test_job_template: &native_test_job_definition 37 stage: test 38 image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest 39 script: 40 - cd build 41 - find . -type f -exec touch {} + 42 - make $MAKE_CHECK_ARGS 43 44.post_acceptance_template: &post_acceptance 45 after_script: 46 - cd build 47 - python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat 48 - du -chs $HOME/avocado/data/cache 49 50build-system-ubuntu-main: 51 <<: *native_build_job_definition 52 variables: 53 IMAGE: ubuntu2004 54 TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu lm32-softmmu 55 moxie-softmmu microblazeel-softmmu mips64el-softmmu m68k-softmmu ppc-softmmu 56 riscv64-softmmu sparc-softmmu 57 artifacts: 58 paths: 59 - build 60 61check-system-ubuntu-main: 62 <<: *native_test_job_definition 63 needs: 64 - job: build-system-ubuntu-main 65 artifacts: true 66 variables: 67 IMAGE: ubuntu2004 68 MAKE_CHECK_ARGS: check 69 70acceptance-system-ubuntu-main: 71 <<: *native_test_job_definition 72 needs: 73 - job: build-system-ubuntu-main 74 artifacts: true 75 variables: 76 IMAGE: ubuntu2004 77 MAKE_CHECK_ARGS: check-acceptance 78 <<: *post_acceptance 79 80build-system-fedora-alt: 81 <<: *native_build_job_definition 82 variables: 83 IMAGE: fedora 84 TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu 85 riscv32-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu x86_64-softmmu 86 xtensa-softmmu nios2-softmmu or1k-softmmu 87 artifacts: 88 paths: 89 - build 90 91check-system-fedora-alt: 92 <<: *native_test_job_definition 93 needs: 94 - job: build-system-fedora-alt 95 artifacts: true 96 variables: 97 IMAGE: fedora 98 MAKE_CHECK_ARGS: check 99 100acceptance-system-fedora-alt: 101 <<: *native_test_job_definition 102 needs: 103 - job: build-system-fedora-alt 104 artifacts: true 105 variables: 106 IMAGE: fedora 107 MAKE_CHECK_ARGS: check-acceptance 108 <<: *post_acceptance 109 110build-disabled: 111 <<: *native_build_job_definition 112 variables: 113 IMAGE: fedora 114 CONFIGURE_ARGS: --disable-rdma --disable-slirp --disable-curl 115 --disable-capstone --disable-live-block-migration --disable-glusterfs 116 --disable-replication --disable-coroutine-pool --disable-smartcard 117 --disable-guest-agent --disable-curses --disable-libxml2 --disable-tpm 118 --disable-qom-cast-debug --disable-spice --disable-vhost-vsock 119 --disable-vhost-net --disable-vhost-crypto --disable-vhost-user 120 TARGETS: i386-softmmu ppc64-softmmu mips64-softmmu i386-linux-user 121 MAKE_CHECK_ARGS: check-qtest SPEED=slow 122 123build-tcg-disabled: 124 <<: *native_build_job_definition 125 variables: 126 IMAGE: centos8 127 script: 128 - mkdir build 129 - cd build 130 - ../configure --disable-tcg --audio-drv-list="" 131 - make -j"$JOBS" 132 - make check-unit 133 - make check-qapi-schema 134 - cd tests/qemu-iotests/ 135 - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 136 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 137 170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277 138 - ./check -qcow2 028 051 056 057 058 065 067 068 082 085 091 095 096 102 122 139 124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202 140 208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258 141 260 261 262 263 264 270 272 273 277 279 142 143build-user: 144 <<: *native_build_job_definition 145 variables: 146 IMAGE: ubuntu2004 147 CONFIGURE_ARGS: --disable-system --disable-guest-agent 148 --disable-capstone --disable-slirp --disable-fdt 149 MAKE_CHECK_ARGS: run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user 150 151build-clang: 152 <<: *native_build_job_definition 153 variables: 154 IMAGE: fedora 155 CONFIGURE_ARGS: --cc=clang --cxx=clang++ 156 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu 157 ppc-softmmu s390x-softmmu x86_64-softmmu arm-linux-user 158 MAKE_CHECK_ARGS: check 159 160build-tci: 161 <<: *native_build_job_definition 162 variables: 163 IMAGE: fedora 164 script: 165 - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64" 166 - mkdir build 167 - cd build 168 - ../configure --enable-tcg-interpreter 169 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" 170 - make -j"$JOBS" 171 - make run-tcg-tests-x86_64-softmmu 172 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test 173 - for tg in $TARGETS ; do 174 export QTEST_QEMU_BINARY="${tg}-softmmu/qemu-system-${tg}" ; 175 ./tests/qtest/boot-serial-test || exit 1 ; 176 ./tests/qtest/cdrom-test || exit 1 ; 177 done 178 - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test 179 - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" ./tests/qtest/pxe-test -m slow 180