1.test-jobs-common: 2 stage: test 3 image: registry.gitlab.com/xen-project/xen/${CONTAINER} 4 5.arm64-test-needs: &arm64-test-needs 6 - alpine-3.18-arm64-rootfs-export 7 - kernel-5.19-arm64-export 8 - qemu-system-aarch64-6.0.0-arm64-export 9 10.arm32-test-needs: &arm32-test-needs 11 - qemu-system-aarch64-6.0.0-arm32-export 12 13.x86-64-test-needs: &x86-64-test-needs 14 - alpine-3.18-rootfs-export 15 - kernel-6.1.19-export 16 17.qemu-arm64: 18 extends: .test-jobs-common 19 variables: 20 CONTAINER: debian:bookworm-arm64v8 21 LOGFILE: qemu-smoke-arm64.log 22 artifacts: 23 paths: 24 - smoke.serial 25 - '*.log' 26 when: always 27 tags: 28 - arm64 29 30.qemu-arm32: 31 extends: .test-jobs-common 32 variables: 33 CONTAINER: debian:bookworm-arm64v8 34 LOGFILE: qemu-smoke-arm32.log 35 artifacts: 36 paths: 37 - smoke.serial 38 - '*.log' 39 when: always 40 tags: 41 - arm64 42 43.qemu-x86-64: 44 extends: .test-jobs-common 45 variables: 46 CONTAINER: debian:bookworm 47 LOGFILE: qemu-smoke-x86-64.log 48 artifacts: 49 paths: 50 - smoke.serial 51 - '*.log' 52 when: always 53 tags: 54 - x86_64 55 56.qemu-riscv64: 57 extends: .test-jobs-common 58 variables: 59 CONTAINER: debian:12-riscv64 60 LOGFILE: qemu-smoke-riscv64.log 61 artifacts: 62 paths: 63 - smoke.serial 64 - '*.log' 65 when: always 66 tags: 67 - x86_64 68 69.qemu-ppc64le: 70 extends: .test-jobs-common 71 variables: 72 CONTAINER: debian:12-ppc64le 73 LOGFILE: qemu-smoke-ppc64le.log 74 artifacts: 75 paths: 76 - smoke.serial 77 - '*.log' 78 when: always 79 tags: 80 - x86_64 81 82.xilinx-arm64: 83 extends: .test-jobs-common 84 variables: 85 CONTAINER: ubuntu:xenial-xilinx 86 LOGFILE: qemu-smoke-xilinx.log 87 artifacts: 88 paths: 89 - smoke.serial 90 - '*.log' 91 - '*.dtb' 92 when: always 93 only: 94 variables: 95 - $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true" 96 tags: 97 - xilinx 98 99.adl-x86-64: 100 extends: .test-jobs-common 101 variables: 102 # the test controller runs on RPi4 103 CONTAINER: alpine:3.18-arm64v8 104 LOGFILE: smoke-test.log 105 PCIDEV: "03:00.0" 106 PCIDEV_INTR: "MSI-X" 107 CONSOLE_OPTS: "console=com1 com1=115200,8n1" 108 artifacts: 109 paths: 110 - smoke.serial 111 - '*.log' 112 when: always 113 only: 114 variables: 115 - $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true" 116 tags: 117 - qubes-hw2 118 119.zen3p-x86-64: 120 # it's really similar to the above 121 extends: .adl-x86-64 122 variables: 123 PCIDEV: "01:00.0" 124 PCIDEV_INTR: "MSI-X" 125 CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi" 126 tags: 127 - qubes-hw11 128 129# Test jobs 130build-each-commit-gcc: 131 extends: .test-jobs-common 132 variables: 133 CONTAINER: debian:bookworm 134 XEN_TARGET_ARCH: x86_64 135 CC: gcc 136 script: 137 - BASE=${BASE_SHA:-${CI_COMMIT_BEFORE_SHA}} TIP=${TIP_SHA:-${CI_COMMIT_SHA}} ./automation/gitlab-ci/build-each-commit.sh 2>&1 | tee build-each-commit-gcc.log 138 artifacts: 139 paths: 140 - '*.log' 141 when: always 142 needs: [] 143 tags: 144 - x86_64 145 146xilinx-smoke-dom0less-arm64-gcc-debug: 147 extends: .xilinx-arm64 148 script: 149 - ./automation/scripts/xilinx-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE} 150 needs: 151 - *arm64-test-needs 152 - alpine-3.18-gcc-debug-arm64 153 154xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough: 155 extends: .xilinx-arm64 156 script: 157 - ./automation/scripts/xilinx-smoke-dom0less-arm64.sh gem-passthrough 2>&1 | tee ${LOGFILE} 158 needs: 159 - *arm64-test-needs 160 - alpine-3.18-gcc-debug-arm64 161 162adl-smoke-x86-64-gcc-debug: 163 extends: .adl-x86-64 164 script: 165 - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE} 166 needs: 167 - *x86-64-test-needs 168 - alpine-3.18-gcc-debug 169 170adl-smoke-x86-64-dom0pvh-gcc-debug: 171 extends: .adl-x86-64 172 script: 173 - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE} 174 needs: 175 - *x86-64-test-needs 176 - alpine-3.18-gcc-debug 177 178adl-smoke-x86-64-dom0pvh-hvm-gcc-debug: 179 extends: .adl-x86-64 180 script: 181 - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE} 182 needs: 183 - *x86-64-test-needs 184 - alpine-3.18-gcc-debug 185 186adl-suspend-x86-64-gcc-debug: 187 extends: .adl-x86-64 188 script: 189 - ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE} 190 needs: 191 - *x86-64-test-needs 192 - alpine-3.18-gcc-debug 193 194adl-pci-pv-x86-64-gcc-debug: 195 extends: .adl-x86-64 196 script: 197 - ./automation/scripts/qubes-x86-64.sh pci-pv 2>&1 | tee ${LOGFILE} 198 needs: 199 - *x86-64-test-needs 200 - alpine-3.18-gcc-debug 201 202adl-pci-hvm-x86-64-gcc-debug: 203 extends: .adl-x86-64 204 script: 205 - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE} 206 needs: 207 - *x86-64-test-needs 208 - alpine-3.18-gcc-debug 209 210zen3p-smoke-x86-64-gcc-debug: 211 extends: .zen3p-x86-64 212 script: 213 - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE} 214 needs: 215 - *x86-64-test-needs 216 - alpine-3.18-gcc-debug 217 218zen3p-smoke-x86-64-dom0pvh-gcc-debug: 219 extends: .zen3p-x86-64 220 script: 221 - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE} 222 needs: 223 - *x86-64-test-needs 224 - alpine-3.18-gcc-debug 225 226zen3p-smoke-x86-64-dom0pvh-hvm-gcc-debug: 227 extends: .zen3p-x86-64 228 script: 229 - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE} 230 needs: 231 - *x86-64-test-needs 232 - alpine-3.18-gcc-debug 233 234zen3p-pci-hvm-x86-64-gcc-debug: 235 extends: .zen3p-x86-64 236 script: 237 - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE} 238 needs: 239 - *x86-64-test-needs 240 - alpine-3.18-gcc-debug 241 242qemu-smoke-dom0-arm64-gcc: 243 extends: .qemu-arm64 244 script: 245 - ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE} 246 needs: 247 - *arm64-test-needs 248 - alpine-3.18-gcc-arm64 249 250qemu-smoke-dom0-arm64-gcc-debug: 251 extends: .qemu-arm64 252 script: 253 - ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE} 254 needs: 255 - *arm64-test-needs 256 - alpine-3.18-gcc-debug-arm64 257 258qemu-smoke-dom0less-arm64-gcc: 259 extends: .qemu-arm64 260 script: 261 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE} 262 needs: 263 - *arm64-test-needs 264 - alpine-3.18-gcc-arm64 265 266qemu-smoke-dom0less-arm64-gcc-debug: 267 extends: .qemu-arm64 268 script: 269 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE} 270 needs: 271 - *arm64-test-needs 272 - alpine-3.18-gcc-debug-arm64 273 274qemu-smoke-dom0less-arm64-gcc-debug-gicv3: 275 extends: .qemu-arm64 276 script: 277 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE} 278 needs: 279 - *arm64-test-needs 280 - alpine-3.18-gcc-debug-arm64 281 282qemu-smoke-dom0less-arm64-gcc-debug-staticmem: 283 extends: .qemu-arm64 284 script: 285 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE} 286 needs: 287 - *arm64-test-needs 288 - alpine-3.18-gcc-debug-arm64-staticmem 289 290qemu-smoke-dom0less-arm64-gcc-debug-staticheap: 291 extends: .qemu-arm64 292 script: 293 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE} 294 needs: 295 - *arm64-test-needs 296 - alpine-3.18-gcc-debug-arm64 297 298qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem: 299 extends: .qemu-arm64 300 script: 301 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE} 302 needs: 303 - *arm64-test-needs 304 - alpine-3.18-gcc-debug-arm64-static-shared-mem 305 306qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools: 307 extends: .qemu-arm64 308 script: 309 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE} 310 needs: 311 - *arm64-test-needs 312 - alpine-3.18-gcc-debug-arm64-boot-cpupools 313 314qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk: 315 extends: .qemu-arm64 316 script: 317 - ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE} 318 needs: 319 - *arm64-test-needs 320 - alpine-3.18-gcc-debug-arm64-earlyprintk 321 322qemu-xtf-dom0less-arm64-gcc-hyp-xen-version: 323 extends: .qemu-arm64 324 script: 325 - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE} 326 needs: 327 - alpine-3.18-gcc-arm64 328 - qemu-system-aarch64-6.0.0-arm64-export 329 330qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version: 331 extends: .qemu-arm64 332 script: 333 - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE} 334 needs: 335 - alpine-3.18-gcc-debug-arm64 336 - qemu-system-aarch64-6.0.0-arm64-export 337 338qemu-smoke-dom0-arm32-gcc: 339 extends: .qemu-arm32 340 script: 341 - ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE} 342 needs: 343 - *arm32-test-needs 344 - yocto-qemuarm 345 346qemu-smoke-dom0less-arm32-gcc: 347 extends: .qemu-arm32 348 script: 349 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} 350 needs: 351 - *arm32-test-needs 352 - debian-bookworm-gcc-arm32 353 354qemu-smoke-dom0less-arm32-gcc-debug: 355 extends: .qemu-arm32 356 script: 357 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} 358 needs: 359 - *arm32-test-needs 360 - debian-bookworm-gcc-arm32-debug 361 362qemu-smoke-dom0less-arm32-gcc-debug-staticmem: 363 extends: .qemu-arm32 364 script: 365 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE} 366 needs: 367 - *arm32-test-needs 368 - debian-bookworm-gcc-arm32-debug-staticmem 369 370qemu-smoke-dom0less-arm32-gcc-debug-gzip: 371 extends: .qemu-arm32 372 script: 373 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE} 374 needs: 375 - *arm32-test-needs 376 - debian-bookworm-gcc-arm32-debug 377 378qemu-smoke-dom0less-arm32-gcc-without-dom0: 379 extends: .qemu-arm32 380 script: 381 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} 382 needs: 383 - *arm32-test-needs 384 - debian-bookworm-gcc-arm32 385 386qemu-smoke-dom0less-arm32-gcc-debug-without-dom0: 387 extends: .qemu-arm32 388 script: 389 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE} 390 needs: 391 - *arm32-test-needs 392 - debian-bookworm-gcc-arm32-debug 393 394qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk: 395 extends: .qemu-arm32 396 script: 397 - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE} 398 needs: 399 - *arm32-test-needs 400 - debian-bookworm-gcc-arm32-debug-earlyprintk 401 402qemu-alpine-x86_64-gcc: 403 extends: .qemu-x86-64 404 script: 405 - ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee ${LOGFILE} 406 needs: 407 - *x86-64-test-needs 408 - alpine-3.18-gcc 409 410qemu-smoke-x86-64-gcc: 411 extends: .qemu-x86-64 412 script: 413 - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} 414 needs: 415 - debian-bookworm-gcc-debug 416 417qemu-smoke-x86-64-clang: 418 extends: .qemu-x86-64 419 script: 420 - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE} 421 needs: 422 - debian-bookworm-clang-debug 423 424qemu-smoke-x86-64-gcc-pvh: 425 extends: .qemu-x86-64 426 script: 427 - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} 428 needs: 429 - debian-bookworm-gcc-debug 430 431qemu-smoke-x86-64-clang-pvh: 432 extends: .qemu-x86-64 433 script: 434 - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE} 435 needs: 436 - debian-bookworm-clang-debug 437 438qemu-smoke-riscv64-gcc: 439 extends: .qemu-riscv64 440 script: 441 - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE} 442 needs: 443 - debian-12-riscv64-gcc-debug 444 445qemu-smoke-ppc64le-powernv9-gcc: 446 extends: .qemu-ppc64le 447 script: 448 - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE} 449 needs: 450 - debian-12-ppc64le-gcc-debug 451