fix: the release gate has time to install what the package now depends on
The validator installs the previous package and then the candidate, two full desktop installs in one container, on a 720s cap with 360s per install. 0.2.6 adds LibreOffice and a dozen font packages — 216MB and 186 packages on top of Plasma — and the run was killed during the PREVIOUS install, before it reached a single assertion. Raised generously rather than to just-enough. This is the gate that has to say "the package is wrong"; one that says "the machine was busy" instead teaches everybody to re-run it until it passes, which is how a gate stops being one. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
95ae054f6f
commit
89b24acff0
@@ -29,7 +29,17 @@ if [[ -n "$previous" ]]; then
|
||||
docker_args+=( -v "$previous:/packages/previous.deb:ro" )
|
||||
fi
|
||||
|
||||
timeout --signal=TERM --kill-after=15s 720s \
|
||||
# 720s was enough while this package's heaviest dependency was Plasma.
|
||||
# 0.2.6 adds LibreOffice and a dozen font packages for Presentations, and
|
||||
# the run installs the PREVIOUS package as well as the candidate, so the
|
||||
# container now does two full desktop installs. Measured: the previous
|
||||
# install alone ran past 360s on the development VM and the whole run was
|
||||
# killed before it reached a single assertion.
|
||||
#
|
||||
# Generous rather than tight, on purpose. This is the gate that has to
|
||||
# say "the package is wrong", and a gate that says "the machine was busy"
|
||||
# instead teaches everybody to re-run it until it passes.
|
||||
timeout --signal=TERM --kill-after=15s 2700s \
|
||||
docker "${docker_args[@]}" debian:trixie-slim \
|
||||
bash -s -- "${previous:+/packages/previous.deb}" <<'CONTAINER'
|
||||
set -Eeuo pipefail
|
||||
@@ -74,12 +84,12 @@ run_logged() {
|
||||
fi
|
||||
}
|
||||
|
||||
run_logged apt-update 120 apt-get update -qq
|
||||
run_logged apt-update 300 apt-get update -qq
|
||||
|
||||
previous="${1:-}"
|
||||
|
||||
if [[ -n "$previous" ]]; then
|
||||
run_logged previous-install 360 apt-get install -y -qq "$previous"
|
||||
run_logged previous-install 1200 apt-get install -y -qq "$previous"
|
||||
|
||||
cat > /etc/ekklesia-classroom/device.conf <<'CONFIG'
|
||||
# Configuration carried forward from 0.1.36
|
||||
@@ -96,7 +106,7 @@ CUSTOM_SETTING=preserve-me-too
|
||||
CONFIG
|
||||
fi
|
||||
|
||||
run_logged candidate-install 360 apt-get install -y -qq /packages/candidate.deb
|
||||
run_logged candidate-install 1200 apt-get install -y -qq /packages/candidate.deb
|
||||
|
||||
command -v nmtui >/dev/null
|
||||
command -v lpadmin >/dev/null
|
||||
@@ -387,7 +397,7 @@ if [[ -n "$previous" ]]; then
|
||||
[[ "$(grep -c "^${setting}=" /etc/ekklesia-classroom/device.conf)" -eq 1 ]]
|
||||
done
|
||||
|
||||
run_logged candidate-reinstall 360 \
|
||||
run_logged candidate-reinstall 900 \
|
||||
apt-get install --reinstall -y -qq /packages/candidate.deb
|
||||
|
||||
# An install that changes nothing must change nothing.
|
||||
|
||||
Reference in New Issue
Block a user