scavenge for logs

Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This commit is contained in:
Krzesimir Nowak 2026-03-11 17:13:40 +01:00
parent 16c6ba71f3
commit ecaeb46687
4 changed files with 49 additions and 27 deletions

View File

@ -185,8 +185,13 @@ else
./run_sdk_container -C "${import_image}" -n "${toolchains_container}" \
sudo ./build_toolchains --seed_tarball="./${tarball}" || failed=x
if [[ -n ${logdir} ]] && sudo test -d __build__/images/catalyst/log/coreos-toolchains; then
sudo cp -a __build__/images/catalyst/log/coreos-toolchains "${logdir}/coreos-toolchains"
if [[ -n ${logdir} ]]; then
if sudo test -d __build__/images/catalyst/log/coreos-toolchains; then
sudo cp -a __build__/images/catalyst/log/coreos-toolchains "${logdir}/coreos-toolchains"
fi
if sudo test -d __build__/images/catalyst/tmp/coreos-toolchains; then
scavenge_for_configure_logs --use-sudo __build__/images/catalyst/tmp/coreos-toolchains "${logdir}"
fi
fi
if [[ -n ${failed} ]]; then exit 1; fi

View File

@ -96,7 +96,7 @@ function _packages_build_impl() {
# Copy the build logs to a directory accessible for us.
./run_sdk_container -n "${packages_container}" -v "${vernum}" -C "${sdk_image}" \
cp -a "/build/${arch}-usr/var/log/portage" "${logdir}" || :
bash -c "source sdk_lib/sdk_container_common.sh; cp -a /build/${arch@Q}-usr/var/log/portage ${logdir@Q}; scavenge_for_configure_logs /build/${arch@Q}-usr/var/tmp/portage ${logdir@Q}" || :
if [[ -z ${failed} ]]; then
# run_sdk_container updates the version file, use that version from here on

View File

@ -211,30 +211,10 @@ function _sdk_bootstrap_impl() {
if dir_contains_globs "${catalyst_log}" 'stage*'; then
cp -a "${catalyst_log}/stage"* "${logdir}"
fi
mkdir -p "${logdir}/config-logs"
# TODO: Add more interesting files (meson logs, cmake logs)
local -a interesting_files=( config.log CMakeConfigureLog.yaml meson-log.txt ) find_flags=()
for f in "${interesting_files[@]}"; do
if [[ ${#find_flags[@]} -ne 0 ]]; then
find_flags+=( '-o' )
fi
find_flags+=( '-name' "${f}" )
done
local catalyst_tmp='__build__/images/catalyst/tmp/flatcar-sdk'
local -a logs
local l d
mapfile -t logs < <(find "${catalyst_tmp}" "${find_flags[@]}")
for l in "${logs[@]}"; do
d=${l#"${catalyst_tmp}"}
d=${d#/}
if [[ ${d} = */* ]]; then
d=${d%/*}
mkdir -p "${logdir}/config-logs/${d}"
else
d='.'
fi
cp -a "${l}" "${logdir}/config-logs/${d}"
done
(
source sdk_lib/sdk_container_common.sh
scavenge_for_configure_logs __build__/images/catalyst/tmp/flatcar-sdk "${logdir}"
)
if dir_contains_globs "${logdir}" '*'; then
(
cd "${logdir}"

View File

@ -305,3 +305,40 @@ function gnupg_ssh_gcloud_mount_opts() {
fi
fi
}
function scavenge_for_configure_logs() {
local -a sudo_cmd=()
while [[ $# -gt 0 ]]; do
case ${1} in
--use-sudo) sudo_cmd=( sudo ); shift;;
--) shift; break;;
--*) echo "unknown flag for $0: $1" >&2; exit 1;;
*) break;;
esac
done
local dir=${1}; shift
local logdir=${1}; shift
# TODO: Add more interesting files
local -a interesting_files=( config.log CMakeConfigureLog.yaml meson-log.txt ) find_flags=()
for f in "${interesting_files[@]}"; do
if [[ ${#find_flags[@]} -ne 0 ]]; then
find_flags+=( '-o' )
fi
find_flags+=( '-name' "${f}" )
done
local -a logs
local l d
mapfile -t logs < <("${sudo_cmd[@]}" find "${dir}" "${find_flags[@]}")
for l in "${logs[@]}"; do
d=${l#"${dir}"}
d=${d#/}
if [[ ${d} = */* ]]; then
d=${d%/*}
else
d='.'
fi
"${sudo_cmd[@]}" mkdir -p "${logdir}/config-logs/${d}"
"${sudo_cmd[@]}" cp -a "${l}" "${logdir}/config-logs/${d}"
done
}