mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:56:38 +00:00
Merge tag 'pbouvier/pr/ci-20260625' of https://gitlab.com/p-b-o/qemu into staging
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.
This commit is contained in:
@@ -134,3 +134,51 @@ variables:
|
|||||||
QEMU_CI_CONTAINER_TAG: $CI_COMMIT_REF_SLUG
|
QEMU_CI_CONTAINER_TAG: $CI_COMMIT_REF_SLUG
|
||||||
|
|
||||||
- when: on_success
|
- when: on_success
|
||||||
|
|
||||||
|
# Any job running meson should capture meson logs
|
||||||
|
# by default. Some jobs might override the artifacts
|
||||||
|
# to capture further files
|
||||||
|
.base_meson_job_template:
|
||||||
|
extends: .base_job_template
|
||||||
|
artifacts:
|
||||||
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
||||||
|
when: always
|
||||||
|
expire_in: 7 days
|
||||||
|
paths:
|
||||||
|
- build/meson-logs
|
||||||
|
- ci-runner-env
|
||||||
|
reports:
|
||||||
|
junit: build/meson-logs/*.junit.xml
|
||||||
|
before_script:
|
||||||
|
- source scripts/ci/gitlab-ci-section
|
||||||
|
- section_start setup "Pre-script setup"
|
||||||
|
- JOBS=$(expr $(nproc) + 1)
|
||||||
|
# Prevent logs (if any) from prior build job artifacts
|
||||||
|
# from being duplicated in the new job artifacts
|
||||||
|
- rm -f build/meson-logs/*
|
||||||
|
- mkdir -p ci-runner-env
|
||||||
|
- test -f /packages.txt && cp /packages.txt ci-runner-env/packages.txt
|
||||||
|
- cp /proc/mounts ci-runner-env/mounts.txt
|
||||||
|
- cp /proc/cpuinfo ci-runner-env/cpuinfo.txt
|
||||||
|
- cp /proc/meminfo ci-runner-env/meminfo.txt
|
||||||
|
- ls -l /dev > ci-runner-env/devices.txt
|
||||||
|
- uname -a > ci-runner-env/kernel.txt
|
||||||
|
- id -a > ci-runner-env/user.txt
|
||||||
|
- printenv | sort > ci-runner-env/environ.txt
|
||||||
|
- section_end setup
|
||||||
|
|
||||||
|
.base_meson_ccache_job_template:
|
||||||
|
extends: .base_meson_job_template
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- ccache
|
||||||
|
key: "$CI_JOB_NAME"
|
||||||
|
when: always
|
||||||
|
script:
|
||||||
|
- export CCACHE_BASEDIR="$(pwd)"
|
||||||
|
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
||||||
|
- export CCACHE_MAXSIZE="500M"
|
||||||
|
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
||||||
|
- ccache --zero-stats
|
||||||
|
after_script:
|
||||||
|
- ccache --show-stats
|
||||||
|
|||||||
@@ -1,42 +1,13 @@
|
|||||||
|
|
||||||
# Any job running meson should capture meson logs
|
|
||||||
# by default. Some jobs might override the artifacts
|
|
||||||
# to capture further files
|
|
||||||
.meson_job_template:
|
|
||||||
extends: .base_job_template
|
|
||||||
artifacts:
|
|
||||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
|
||||||
when: always
|
|
||||||
expire_in: 7 days
|
|
||||||
paths:
|
|
||||||
- build/meson-logs
|
|
||||||
reports:
|
|
||||||
junit: build/meson-logs/*.junit.xml
|
|
||||||
|
|
||||||
.native_build_job_template:
|
.native_build_job_template:
|
||||||
extends: .meson_job_template
|
extends: .base_meson_ccache_job_template
|
||||||
stage: build
|
stage: build
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
when: always
|
|
||||||
before_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- section_start setup "Pre-script setup"
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
- cat /packages.txt
|
|
||||||
- section_end setup
|
|
||||||
script:
|
script:
|
||||||
- export CCACHE_BASEDIR="$(pwd)"
|
- !reference [.base_meson_ccache_job_template, script]
|
||||||
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
||||||
- export CCACHE_MAXSIZE="500M"
|
|
||||||
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
|
||||||
- du -sh .git
|
- du -sh .git
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- ccache --zero-stats
|
|
||||||
- section_start configure "Running configure"
|
- section_start configure "Running configure"
|
||||||
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
||||||
--disable-debug-info
|
--disable-debug-info
|
||||||
@@ -57,7 +28,6 @@
|
|||||||
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
||||||
fi
|
fi
|
||||||
- section_end test
|
- section_end test
|
||||||
- ccache --show-stats
|
|
||||||
|
|
||||||
# We jump some hoops in common_test_job_template to avoid
|
# We jump some hoops in common_test_job_template to avoid
|
||||||
# rebuilding all the object files we skip in the artifacts
|
# rebuilding all the object files we skip in the artifacts
|
||||||
@@ -68,6 +38,7 @@
|
|||||||
paths:
|
paths:
|
||||||
- build
|
- build
|
||||||
- .git-submodule-status
|
- .git-submodule-status
|
||||||
|
- ci-runner-env
|
||||||
exclude:
|
exclude:
|
||||||
- build/**/*.p
|
- build/**/*.p
|
||||||
- build/**/*.a.p
|
- build/**/*.a.p
|
||||||
@@ -75,7 +46,7 @@
|
|||||||
- build/**/*.c.o.d
|
- build/**/*.c.o.d
|
||||||
|
|
||||||
.common_test_job_template:
|
.common_test_job_template:
|
||||||
extends: .meson_job_template
|
extends: .base_meson_job_template
|
||||||
stage: test
|
stage: test
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -107,11 +78,6 @@
|
|||||||
|
|
||||||
.native_test_job_template:
|
.native_test_job_template:
|
||||||
extends: .common_test_job_template
|
extends: .common_test_job_template
|
||||||
before_script:
|
|
||||||
# Prevent logs from the build job that run earlier
|
|
||||||
# from being duplicated in the test job artifacts
|
|
||||||
- rm -f build/meson-logs/*
|
|
||||||
|
|
||||||
|
|
||||||
.functional_test_job_template:
|
.functional_test_job_template:
|
||||||
extends: .common_test_job_template
|
extends: .common_test_job_template
|
||||||
@@ -126,21 +92,28 @@
|
|||||||
# Prevent logs from the build job that run earlier
|
# Prevent logs from the build job that run earlier
|
||||||
# from being duplicated in the test job artifacts
|
# from being duplicated in the test job artifacts
|
||||||
- rm -f build/meson-logs/*
|
- 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:
|
after_script:
|
||||||
- cd build
|
- cd build
|
||||||
- du -chs ${CI_PROJECT_DIR}/*-cache
|
- du -chs ${CI_PROJECT_DIR}/*-cache
|
||||||
variables:
|
variables:
|
||||||
QEMU_JOB_FUNCTIONAL: 1
|
QEMU_JOB_FUNCTIONAL: 1
|
||||||
|
QEMU_TEST_ALLOW_UNTRUSTED_CODE: 1
|
||||||
|
QEMU_TEST_CACHE_DIR: ${CI_PROJECT_DIR}/functional-cache
|
||||||
|
|
||||||
.wasm_build_job_template:
|
.wasm_build_job_template:
|
||||||
extends: .meson_job_template
|
extends: .base_meson_job_template
|
||||||
stage: build
|
stage: build
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
before_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- section_start setup "Pre-script setup"
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
- section_end setup
|
|
||||||
script:
|
script:
|
||||||
- du -sh .git
|
- du -sh .git
|
||||||
- mkdir build
|
- mkdir build
|
||||||
|
|||||||
@@ -1,27 +1,12 @@
|
|||||||
.cross_system_build_job:
|
.cross_system_build_job:
|
||||||
extends: .base_job_template
|
extends: .base_meson_ccache_job_template
|
||||||
stage: build
|
stage: build
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
when: always
|
|
||||||
timeout: 80m
|
timeout: 80m
|
||||||
before_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- section_start setup "Pre-script setup"
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
- cat /packages.txt
|
|
||||||
- section_end setup
|
|
||||||
script:
|
script:
|
||||||
- export CCACHE_BASEDIR="$(pwd)"
|
- !reference [.base_meson_ccache_job_template, script]
|
||||||
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
||||||
- export CCACHE_MAXSIZE="500M"
|
|
||||||
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- ccache --zero-stats
|
|
||||||
- section_start configure "Running configure"
|
- section_start configure "Running configure"
|
||||||
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
- ../configure --enable-werror --disable-docs --enable-fdt=system
|
||||||
--disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS
|
--disable-user $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS
|
||||||
@@ -46,7 +31,6 @@
|
|||||||
mv -v qemu-setup*.exe qemu-setup-${version}.exe;
|
mv -v qemu-setup*.exe qemu-setup-${version}.exe;
|
||||||
fi
|
fi
|
||||||
- section_end installer
|
- section_end installer
|
||||||
- ccache --show-stats
|
|
||||||
|
|
||||||
# Job to cross-build specific accelerators.
|
# Job to cross-build specific accelerators.
|
||||||
#
|
#
|
||||||
@@ -54,22 +38,12 @@
|
|||||||
# KVM), and set extra options (such disabling other accelerators) via the
|
# KVM), and set extra options (such disabling other accelerators) via the
|
||||||
# $EXTRA_CONFIGURE_OPTS variable.
|
# $EXTRA_CONFIGURE_OPTS variable.
|
||||||
.cross_accel_build_job:
|
.cross_accel_build_job:
|
||||||
extends: .base_job_template
|
extends: .base_meson_ccache_job_template
|
||||||
stage: build
|
stage: build
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
timeout: 60m
|
timeout: 60m
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache/
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
before_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
script:
|
script:
|
||||||
- export CCACHE_BASEDIR="$(pwd)"
|
- !reference [.base_meson_ccache_job_template, script]
|
||||||
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
||||||
- export CCACHE_MAXSIZE="500M"
|
|
||||||
- export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- section_start configure "Running configure"
|
- section_start configure "Running configure"
|
||||||
@@ -87,20 +61,11 @@
|
|||||||
- section_end test
|
- section_end test
|
||||||
|
|
||||||
.cross_user_build_job:
|
.cross_user_build_job:
|
||||||
extends: .base_job_template
|
extends: .base_meson_ccache_job_template
|
||||||
stage: build
|
stage: build
|
||||||
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- ccache/
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
before_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- JOBS=$(expr $(nproc) + 1)
|
|
||||||
script:
|
script:
|
||||||
- export CCACHE_BASEDIR="$(pwd)"
|
- !reference [.base_meson_ccache_job_template, script]
|
||||||
- export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
||||||
- export CCACHE_MAXSIZE="500M"
|
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- section_start configure "Running configure"
|
- section_start configure "Running configure"
|
||||||
@@ -119,15 +84,3 @@
|
|||||||
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
$MAKE -j"$JOBS" $MAKE_CHECK_ARGS ;
|
||||||
fi
|
fi
|
||||||
- section_end test
|
- section_end test
|
||||||
|
|
||||||
# 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
|
|
||||||
reports:
|
|
||||||
junit: build/meson-logs/*.junit.xml
|
|
||||||
|
|||||||
Reference in New Issue
Block a user