2021-05-19 21:54:58 +03:00
|
|
|
.cross_system_build_job:
|
2022-05-27 18:36:01 +03:00
|
|
|
extends: .base_job_template
|
2021-05-19 21:54:58 +03:00
|
|
|
stage: build
|
2023-06-08 19:40:14 +03:00
|
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
2023-08-29 19:15:17 +03:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- ccache
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
when: always
|
2021-05-19 21:54:58 +03:00
|
|
|
timeout: 80m
|
2024-07-29 17:44:02 +03:00
|
|
|
before_script:
|
2024-09-18 15:54:49 +03:00
|
|
|
- source scripts/ci/gitlab-ci-section
|
|
|
|
- section_start setup "Pre-script setup"
|
2024-09-18 15:54:48 +03:00
|
|
|
- JOBS=$(expr $(nproc) + 1)
|
2024-07-29 17:44:02 +03:00
|
|
|
- cat /packages.txt
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end setup
|
2021-05-19 21:54:58 +03:00
|
|
|
script:
|
2023-08-29 19:15:17 +03:00
|
|
|
- export CCACHE_BASEDIR="$(pwd)"
|
|
|
|
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
|
|
- export CCACHE_MAXSIZE="500M"
|
|
|
|
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
2021-05-19 21:54:58 +03:00
|
|
|
- mkdir build
|
|
|
|
- cd build
|
2023-08-29 19:15:17 +03:00
|
|
|
- ccache --zero-stats
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_start configure "Running configure"
|
2023-02-07 23:14:47 +03:00
|
|
|
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
|
|
|
--disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS
|
2024-07-24 14:47:57 +03:00
|
|
|
--target-list-exclude="arm-softmmu
|
2021-05-19 21:54:58 +03:00
|
|
|
i386-softmmu microblaze-softmmu mips-softmmu mipsel-softmmu
|
2021-08-10 17:06:52 +03:00
|
|
|
mips64-softmmu ppc-softmmu riscv32-softmmu sh4-softmmu
|
2021-08-10 17:06:53 +03:00
|
|
|
sparc-softmmu xtensa-softmmu $CROSS_SKIP_TARGETS"
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end configure
|
|
|
|
- section_start build "Building QEMU"
|
2024-09-18 15:54:48 +03:00
|
|
|
- make -j"$JOBS" all check-build
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end build
|
|
|
|
- section_start test "Running tests"
|
2024-09-18 15:54:48 +03:00
|
|
|
- if test -n "$MAKE_CHECK_ARGS";
|
|
|
|
then
|
|
|
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
|
|
fi
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end test
|
|
|
|
- section_start installer "Building the installer"
|
2021-06-23 12:11:35 +03:00
|
|
|
- if grep -q "EXESUF=.exe" config-host.mak;
|
|
|
|
then make installer;
|
2022-02-04 23:43:22 +03:00
|
|
|
version="$(git describe --match v[0-9]* 2>/dev/null || git rev-parse --short HEAD)";
|
2021-06-23 12:11:35 +03:00
|
|
|
mv -v qemu-setup*.exe qemu-setup-${version}.exe;
|
|
|
|
fi
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end installer
|
2023-08-29 19:15:17 +03:00
|
|
|
- ccache --show-stats
|
2021-05-19 21:54:58 +03:00
|
|
|
|
|
|
|
# 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:
|
2022-05-27 18:36:01 +03:00
|
|
|
extends: .base_job_template
|
2021-05-19 21:54:58 +03:00
|
|
|
stage: build
|
2023-06-08 19:40:14 +03:00
|
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
2021-05-19 21:54:58 +03:00
|
|
|
timeout: 30m
|
2023-08-29 19:15:17 +03:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- ccache/
|
|
|
|
key: "$CI_JOB_NAME"
|
2024-09-18 15:54:48 +03:00
|
|
|
before_script:
|
2024-09-18 15:54:49 +03:00
|
|
|
- source scripts/ci/gitlab-ci-section
|
2024-09-18 15:54:48 +03:00
|
|
|
- JOBS=$(expr $(nproc) + 1)
|
2021-05-19 21:54:58 +03:00
|
|
|
script:
|
2023-08-29 19:15:17 +03:00
|
|
|
- export CCACHE_BASEDIR="$(pwd)"
|
|
|
|
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
|
|
- export CCACHE_MAXSIZE="500M"
|
|
|
|
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
2021-05-19 21:54:58 +03:00
|
|
|
- mkdir build
|
|
|
|
- cd build
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_start configure "Running configure"
|
2022-11-03 20:30:43 +03:00
|
|
|
- ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
2021-05-19 21:54:58 +03:00
|
|
|
--disable-tools --enable-${ACCEL:-kvm} $EXTRA_CONFIGURE_OPTS
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end configure
|
|
|
|
- section_start build "Building QEMU"
|
2024-09-18 15:54:48 +03:00
|
|
|
- make -j"$JOBS" all check-build
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end build
|
|
|
|
- section_start test "Running tests"
|
2024-09-18 15:54:48 +03:00
|
|
|
- if test -n "$MAKE_CHECK_ARGS";
|
|
|
|
then
|
|
|
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
|
|
fi
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end test
|
2021-05-19 21:54:58 +03:00
|
|
|
|
|
|
|
.cross_user_build_job:
|
2022-05-27 18:36:01 +03:00
|
|
|
extends: .base_job_template
|
2021-05-19 21:54:58 +03:00
|
|
|
stage: build
|
2023-06-08 19:40:14 +03:00
|
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
2023-08-29 19:15:17 +03:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- ccache/
|
|
|
|
key: "$CI_JOB_NAME"
|
2024-09-18 15:54:48 +03:00
|
|
|
before_script:
|
2024-09-18 15:54:49 +03:00
|
|
|
- source scripts/ci/gitlab-ci-section
|
2024-09-18 15:54:48 +03:00
|
|
|
- JOBS=$(expr $(nproc) + 1)
|
2021-05-19 21:54:58 +03:00
|
|
|
script:
|
2023-08-29 19:15:17 +03:00
|
|
|
- export CCACHE_BASEDIR="$(pwd)"
|
|
|
|
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
|
|
- export CCACHE_MAXSIZE="500M"
|
2021-05-19 21:54:58 +03:00
|
|
|
- mkdir build
|
|
|
|
- cd build
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_start configure "Running configure"
|
2022-11-03 20:30:43 +03:00
|
|
|
- ../configure --enable-werror --disable-docs $QEMU_CONFIGURE_OPTS
|
2022-09-14 18:59:21 +03:00
|
|
|
--disable-system --target-list-exclude="aarch64_be-linux-user
|
2024-07-24 14:47:57 +03:00
|
|
|
alpha-linux-user m68k-linux-user microblazeel-linux-user
|
2024-03-27 14:10:58 +03:00
|
|
|
or1k-linux-user ppc-linux-user sparc-linux-user
|
2022-09-14 18:59:21 +03:00
|
|
|
xtensa-linux-user $CROSS_SKIP_TARGETS"
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end configure
|
|
|
|
- section_start build "Building QEMU"
|
2024-09-18 15:54:48 +03:00
|
|
|
- make -j"$JOBS" all check-build
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end build
|
|
|
|
- section_start test "Running tests"
|
2024-09-18 15:54:48 +03:00
|
|
|
- if test -n "$MAKE_CHECK_ARGS";
|
|
|
|
then
|
|
|
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
|
|
fi
|
2024-09-18 15:54:49 +03:00
|
|
|
- section_end test
|
2023-02-28 22:06:41 +03:00
|
|
|
|
|
|
|
# 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"
|
2023-06-30 21:03:46 +03:00
|
|
|
when: always
|
2023-02-28 22:06:41 +03:00
|
|
|
expire_in: 7 days
|
|
|
|
paths:
|
|
|
|
- build/meson-logs/testlog.txt
|
|
|
|
reports:
|
|
|
|
junit: build/meson-logs/testlog.junit.xml
|