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:
ekklesia
2026-09-22 20:33:51 -05:00
co-authored by Claude Opus 5
parent 95ae054f6f
commit 89b24acff0
+15 -5
View File
@@ -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.