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