1.cross_system_build_job:
2  extends: .base_job_template
3  stage: build
4  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
5  timeout: 80m
6  script:
7    - mkdir build
8    - cd build
9    - ../configure --enable-werror --disable-docs --enable-fdt=system
10        --disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS
11        --target-list-exclude="arm-softmmu cris-softmmu
12          i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
13          mips64-softmmu ppc-softmmu riscv32-softmmu sh4-softmmu
14          sparc-softmmu xtensa-softmmu $CROSS_SKIP_TARGETS"
15    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
16    - if grep -q "EXESUF=.exe" config-host.mak;
17      then make installer;
18      version="$(git describe --match v[0-9]* 2>/dev/null || git rev-parse --short HEAD)";
19      mv -v qemu-setup*.exe qemu-setup-${version}.exe;
20      fi
21
22# Job to cross-build specific accelerators.
23#
24# Set the $ACCEL variable to select the specific accelerator (default to
25# KVM), and set extra options (such disabling other accelerators) via the
26# $EXTRA_CONFIGURE_OPTS variable.
27.cross_accel_build_job:
28  extends: .base_job_template
29  stage: build
30  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
31  timeout: 30m
32  script:
33    - mkdir build
34    - cd build
35    - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
36        --disable-tools --enable-${ACCEL:-kvm} $EXTRA_CONFIGURE_OPTS
37    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
38
39.cross_user_build_job:
40  extends: .base_job_template
41  stage: build
42  image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
43  script:
44    - mkdir build
45    - cd build
46    - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
47        --disable-system --target-list-exclude="aarch64_be-linux-user
48          alpha-linux-user cris-linux-user m68k-linux-user microblazeel-linux-user
49          nios2-linux-user or1k-linux-user ppc-linux-user sparc-linux-user
50          xtensa-linux-user $CROSS_SKIP_TARGETS"
51    - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS
52
53# We can still run some tests on some of our cross build jobs. They can add this
54# template to their extends to save the build logs and test results
55.cross_test_artifacts:
56  artifacts:
57    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
58    expire_in: 7 days
59    paths:
60      - build/meson-logs/testlog.txt
61    reports:
62      junit: build/meson-logs/testlog.junit.xml
63