|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] CI: collect certain intermediate files as artifacts
commit 2121f895036809fccaa5181aed25a16b13adf647
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Mon May 11 15:05:02 2026 +0200
Commit: Stefano Stabellini <stefano.stabellini@xxxxxxx>
CommitDate: Mon May 11 18:40:58 2026 -0700
CI: collect certain intermediate files as artifacts
When one of the linking passes fails, additional intermediate files are
still in place. Having them available for analysis of the underlying
problem can be pretty helpful. Collect some into a new intermediates/
directory. (Nothing new will be collected if linking succeeds.)
As the script is run with -e passed to bash, defer exit if the main
"make" (or substituent script thereof) failed. This way more artifacts
are collected, potentially making it easier to analyze the failure.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
---
automation/gitlab-ci/build.yaml | 1 +
automation/scripts/build | 25 ++++++++++++++++++-------
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f058957291..7f5b5938e8 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -6,6 +6,7 @@
artifacts:
paths:
- binaries/
+ - intermediates/
- xen-config
- xen-cppcheck.txt
- '*.log'
diff --git a/automation/scripts/build b/automation/scripts/build
index 2df154398d..bdaab11c37 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -37,22 +37,24 @@ else
make -j$(nproc) -C xen olddefconfig
fi
-# Save the config file before building because build failure causes the script
-# to exit early -- bash is invoked with -e.
+# Save the config file before building, just in case.
cp xen/.config xen-config
-# Directory for the artefacts to be dumped into
-mkdir -p binaries
+# Directories for artefacts to be dumped into
+mkdir -p binaries intermediates
+
+# Script exit status, to be overridden by the main make's status below.
+ret=0
if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
# Cppcheck analysis invokes Xen-only build
- xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
+ xen/scripts/xen-analysis.py --run-cppcheck --cppcheck-misra -- -j$(nproc)
|| ret=$?
# Preserve artefacts
cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
# Xen-only build
- make -j$(nproc) xen
+ make -j$(nproc) xen || ret=$?
else
# Full build. Figure out our ./configure options
cfgargs=("--prefix=/usr")
@@ -90,7 +92,7 @@ else
fi
./configure "${cfgargs[@]}"
- make -j$(nproc) dist
+ make -j$(nproc) dist || ret=$?
# Preserve artefacts
(cd dist/install; find | cpio -R 0:0 -o -H newc | gzip) >
binaries/xen-tools.cpio.gz
@@ -106,3 +108,12 @@ for f in xen/xen xen/xen-syms xen/xen.efi; do
cp $f binaries/
fi
done
+
+# Preserve Xen intermediate files. Some may be there only upon build failure.
+for f in xen/.xen-syms.* xen/.xen.efi.*; do
+ if [[ -f $f ]]; then
+ cp $f intermediates/
+ fi
+done
+
+exit $ret
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |