| .cross_system_build_job: |
| extends: .base_job_template |
| stage: build |
| image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG |
| cache: |
| paths: |
| - ccache |
| key: "$CI_JOB_NAME" |
| when: always |
| timeout: 80m |
| before_script: |
| - cat /packages.txt |
| script: |
| - export CCACHE_BASEDIR="$(pwd)" |
| - export CCACHE_DIR="$CCACHE_BASEDIR/ccache" |
| - export CCACHE_MAXSIZE="500M" |
| - export PATH="$CCACHE_WRAPPERSDIR:$PATH" |
| - mkdir build |
| - cd build |
| - ccache --zero-stats |
| - ../configure --enable-werror --disable-docs --enable-fdt=system |
| --disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS |
| --target-list-exclude="arm-softmmu cris-softmmu |
| i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu |
| mips64-softmmu ppc-softmmu riscv32-softmmu sh4-softmmu |
| sparc-softmmu xtensa-softmmu $CROSS_SKIP_TARGETS" |
| - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS |
| - if grep -q "EXESUF=.exe" config-host.mak; |
| then make installer; |
| version="$(git describe --match v[0-9]* 2>/dev/null || git rev-parse --short HEAD)"; |
| mv -v qemu-setup*.exe qemu-setup-${version}.exe; |
| fi |
| - ccache --show-stats |
| |
| # Job to cross-build specific accelerators. |
| # |
| # Set the $ACCEL variable to select the specific accelerator (default to |
| # KVM), and set extra options (such disabling other accelerators) via the |
| # $EXTRA_CONFIGURE_OPTS variable. |
| .cross_accel_build_job: |
| extends: .base_job_template |
| stage: build |
| image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG |
| timeout: 30m |
| cache: |
| paths: |
| - ccache/ |
| key: "$CI_JOB_NAME" |
| script: |
| - export CCACHE_BASEDIR="$(pwd)" |
| - export CCACHE_DIR="$CCACHE_BASEDIR/ccache" |
| - export CCACHE_MAXSIZE="500M" |
| - export PATH="$CCACHE_WRAPPERSDIR:$PATH" |
| - mkdir build |
| - cd build |
| - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS |
| --disable-tools --enable-${ACCEL:-kvm} $EXTRA_CONFIGURE_OPTS |
| - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS |
| |
| .cross_user_build_job: |
| extends: .base_job_template |
| stage: build |
| image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG |
| cache: |
| paths: |
| - ccache/ |
| key: "$CI_JOB_NAME" |
| script: |
| - export CCACHE_BASEDIR="$(pwd)" |
| - export CCACHE_DIR="$CCACHE_BASEDIR/ccache" |
| - export CCACHE_MAXSIZE="500M" |
| - mkdir build |
| - cd build |
| - ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS |
| --disable-system --target-list-exclude="aarch64_be-linux-user |
| alpha-linux-user m68k-linux-user microblazeel-linux-user |
| or1k-linux-user ppc-linux-user sparc-linux-user |
| xtensa-linux-user $CROSS_SKIP_TARGETS" |
| - make -j$(expr $(nproc) + 1) all check-build $MAKE_CHECK_ARGS |
| |
| # We can still run some tests on some of our cross build jobs. They can add this |
| # template to their extends to save the build logs and test results |
| .cross_test_artifacts: |
| artifacts: |
| name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" |
| when: always |
| expire_in: 7 days |
| paths: |
| - build/meson-logs/testlog.txt |
| reports: |
| junit: build/meson-logs/testlog.junit.xml |