mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:56:38 +00:00
Changes:
- [PATCH v2 0/6] gitlab: expose more info about CI runner environment (=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>)
Link: https://lore.kernel.org/qemu-devel/20260624124657.2725376-1-berrange@redhat.com
# -----BEGIN PGP SIGNATURE-----
#
# iQGzBAABCgAdFiEEN8FWlNi6l2Sxlz/btEQ30ZwoYt8FAmo9qdAACgkQtEQ30Zwo
# Yt8wMwwAhjB7xy4Eu3gt+leYEq9Yfq44fFGAnBQlN1kvEJhYkxJIA0KSoTZHGSQ/
# Kn97Quhc4kUI4+VvW++pDLevRZ1L80bcKPIM1PtOv5+VKvzCpEjzso6xYodpXTB5
# XgoXgnfTrLagccVeQLObex7PYPVtiQRV0xGXpQSgDqzbxgczgeEqR6YuED7eZVaJ
# ya2JdrIGnpKRhaal+RoCfSnqkRVYvIqs1/CVW2a3VZAq9+kLsx22NceDmX4v22mU
# O/rV4NlfjQ/2FuJvr/Zdnq8RFMHZwFW/NitKWH8esdgXwShnScNq/w4cHS/8CiYC
# 0jq1PxMNuI6q9yjQrXxDMdzJaPjyFnjCFCEYCyZsl9Iokb1GnWVT8xDB07HHRXwL
# nH6YYepSEhlEhY2RFkR4lT9q4p2XoTXlASgxpn6MLu+4V+vuh2A47KNNuClmiLnL
# JQfeF4970RHuJOzxxlzcIpjxHJSxi4SjbGKIuQZ6Hu1eIVx4Tly2Xep4mxa5qCZN
# KIwoRaKZ
# =jvzH
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 25 Jun 2026 18:21:04 EDT
# gpg: using RSA key 37C15694D8BA9764B1973FDBB44437D19C2862DF
# gpg: Good signature from "Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 37C1 5694 D8BA 9764 B197 3FDB B444 37D1 9C28 62DF
* tag 'pbouvier/pr/ci-20260625' of https://gitlab.com/p-b-o/qemu:
gitlab: greatly expand captured info about CI runner environment
gitlab: pull before_script logic into .base_meson_job_template
gitlab: pull ccache setup into .base_meson_ccache_job_template
gitlab: use .base_meson_job_template from crossbuild jobs
gitlab: move .meson_job_template into base.yaml
gitlab: remove unused .cross_test_artifacts template
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Conflicts:
- .gitlab-ci.d/buildtest-template.yml
Context conflict with commit 559d834371 ("gitlab: ensure "check-XXX'
jobs capture functional test logs") moving the artifacts section.
134 lines
4.0 KiB
YAML
134 lines
4.0 KiB
YAML
|
|
.native_build_job_template:
|
|
extends: .base_meson_ccache_job_template
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
|
script:
|
|
- !reference [.base_meson_ccache_job_template, script]
|
|
- du -sh .git
|
|
- mkdir build
|
|
- cd build
|
|
- section_start configure "Running configure"
|
|
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
|
--disable-debug-info
|
|
${TARGETS:+--target-list="$TARGETS"}
|
|
$CONFIGURE_ARGS ||
|
|
{ cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
- if test -n "$LD_JOBS";
|
|
then
|
|
pyvenv/bin/meson configure . -Dbackend_max_links="$LD_JOBS" ;
|
|
fi || exit 1;
|
|
- section_end configure
|
|
- section_start build "Building QEMU"
|
|
- $MAKE -j"$JOBS"
|
|
- section_end build
|
|
- section_start test "Running tests"
|
|
- if test -n "$MAKE_CHECK_ARGS";
|
|
then
|
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
|
fi
|
|
- section_end test
|
|
|
|
# We jump some hoops in common_test_job_template to avoid
|
|
# rebuilding all the object files we skip in the artifacts
|
|
.native_build_artifact_template:
|
|
artifacts:
|
|
when: on_success
|
|
expire_in: 2 days
|
|
paths:
|
|
- build
|
|
- .git-submodule-status
|
|
- ci-runner-env
|
|
exclude:
|
|
- build/**/*.p
|
|
- build/**/*.a.p
|
|
- build/**/*.c.o
|
|
- build/**/*.c.o.d
|
|
|
|
.common_test_job_template:
|
|
extends: .base_meson_job_template
|
|
stage: test
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
when: always
|
|
expire_in: 7 days
|
|
paths:
|
|
- build/meson-logs
|
|
- build/tests/functional/*/*/*.log
|
|
reports:
|
|
junit: build/meson-logs/*.junit.xml
|
|
script:
|
|
- source scripts/ci/gitlab-ci-section
|
|
- section_start buildenv "Setting up to run tests"
|
|
- scripts/git-submodule.sh update roms/SLOF
|
|
- build/pyvenv/bin/meson subprojects download $(cd build/subprojects && echo *)
|
|
- cd build
|
|
- find . -type f -exec touch {} +
|
|
# Avoid recompiling by hiding ninja with NINJA=":"
|
|
# We also have to pre-cache the functional tests manually in this case
|
|
- if [ "x${QEMU_TEST_CACHE_DIR}" != "x" ]; then
|
|
$MAKE precache-functional ;
|
|
fi
|
|
- section_end buildenv
|
|
- section_start test "Running tests"
|
|
# doctests need all the compilation artifacts
|
|
- $MAKE NINJA=":" MTESTARGS="--no-suite doc" $MAKE_CHECK_ARGS
|
|
- section_end test
|
|
|
|
.native_test_job_template:
|
|
extends: .common_test_job_template
|
|
|
|
.functional_test_job_template:
|
|
extends: .common_test_job_template
|
|
cache:
|
|
key: "${CI_JOB_NAME}-cache"
|
|
paths:
|
|
- ${CI_PROJECT_DIR}/functional-cache
|
|
policy: pull-push
|
|
before_script:
|
|
- export QEMU_TEST_ALLOW_UNTRUSTED_CODE=1
|
|
- export QEMU_TEST_CACHE_DIR=${CI_PROJECT_DIR}/functional-cache
|
|
# Prevent logs from the build job that run earlier
|
|
# from being duplicated in the test job artifacts
|
|
- rm -f build/meson-logs/*
|
|
artifacts:
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
when: always
|
|
expire_in: 7 days
|
|
paths:
|
|
- build/meson-logs
|
|
- build/tests/functional/*/*/*.log
|
|
- ci-runner-env
|
|
reports:
|
|
junit: build/meson-logs/*.junit.xml
|
|
after_script:
|
|
- cd build
|
|
- du -chs ${CI_PROJECT_DIR}/*-cache
|
|
variables:
|
|
QEMU_JOB_FUNCTIONAL: 1
|
|
QEMU_TEST_ALLOW_UNTRUSTED_CODE: 1
|
|
QEMU_TEST_CACHE_DIR: ${CI_PROJECT_DIR}/functional-cache
|
|
|
|
.wasm_build_job_template:
|
|
extends: .base_meson_job_template
|
|
stage: build
|
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
|
script:
|
|
- du -sh .git
|
|
- mkdir build
|
|
- cd build
|
|
- section_start configure "Running configure"
|
|
- emconfigure ../configure --disable-docs
|
|
${TARGETS:+--target-list="$TARGETS"}
|
|
$CONFIGURE_ARGS ||
|
|
{ cat config.log meson-logs/meson-log.txt && exit 1; }
|
|
- if test -n "$LD_JOBS";
|
|
then
|
|
pyvenv/bin/meson configure . -Dbackend_max_links="$LD_JOBS" ;
|
|
fi || exit 1;
|
|
- section_end configure
|
|
- section_start build "Building QEMU"
|
|
- emmake make -j"$JOBS"
|
|
- section_end build
|