Collect all errors before exiting

This commit is contained in:
miampf 2025-02-20 16:38:30 +01:00
parent 72a3c9089f
commit 1a3ccb01d2
No known key found for this signature in database
GPG Key ID: EF039364B5B6886C

View File

@ -83,9 +83,12 @@ jobs:
- name: Compare measurements - name: Compare measurements
run: | run: |
set -euo pipefail # no -e since we need to collect errors later
set -uo pipefail
shopt -s extglob shopt -s extglob
declare -A errors
for directory in ${{ steps.build-images.outputs.buildPath }}/system/!(mkosi_wrapper.sh); do for directory in ${{ steps.build-images.outputs.buildPath }}/system/!(mkosi_wrapper.sh); do
dirname="$(basename "$directory")" dirname="$(basename "$directory")"
attestationVariant="$(echo "$dirname" | cut -d_ -f2)" attestationVariant="$(echo "$dirname" | cut -d_ -f2)"
@ -96,5 +99,20 @@ jobs:
ts " " < "$attestationVariant"_own-measurements.json ts " " < "$attestationVariant"_own-measurements.json
# TODO: cache errors and return them later. # TODO: cache errors and return them later.
jd ./"$attestationVariant"_their-measurements.json ./"$attestationVariant"_own-measurements.json diff="$(jd ./"$attestationVariant"_their-measurements.json ./"$attestationVariant"_own-measurements.json)"
if [[ $? -ne 0 ]]; then
errors["$attestationVariant"]="$diff"
fi
done done
# TEST: inject an error
errors["asdf"]="fdsa"
for attestationVariant in "${!errors[@]}"; do
echo "Failed to reproduce measurements for $attestationVariant:"
echo "${errors["$attestationVariant"]}" | ts " "
done
if [[ "${#errors[@]}" -ne 0 ]]; then
exit 1
fi