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