De CI mag de uitslag van --doctor wel degelijk toetsen
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 14m48s

Ik ging ervan uit dat de bereikbaarheidscontrole niet kon slagen omdat de
runner in een eigen container zit. De eerste run liet zien dat hij wél slaagt:
"Antwoordt op http://127.0.0.1:5000". De exitcode wordt nu meegenomen, dus een
echte fout in de deploy laat de CI vallen in plaats van alleen in het log te
belanden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q9eqpADJSRs49SoGGr4NAy
This commit is contained in:
Ramon 2026-08-03 00:46:02 +02:00
parent f8274ebeff
commit f3ead0c526

View file

@ -243,19 +243,25 @@ jobs:
if: success()
run: |
set -uo pipefail
uit="$(sh "$DEPLOY_DIR/install.sh" --doctor --dir "$DEPLOY_DIR" 2>&1 || true)"
uit="$(sh "$DEPLOY_DIR/install.sh" --doctor --dir "$DEPLOY_DIR" 2>&1)"
code=$?
printf '%s\n' "$uit"
# De exitcode toetsen we bewust niet: deze runner zit zelf in een
# container, dus de bereikbaarheidscontrole kan niet slagen — die
# kijkt naar 127.0.0.1 op de host. Of de deploy gezond is, is al
# vastgesteld door de healthcheck-stap hierboven. Wat hier wél moet
# kloppen is dat het doorlichten van begin tot eind draait.
for kop in "Installatie" "Docker" "Container" "Account" "Mappen" \
"Bijwerken vanuit de interface"; do
# Alle secties moeten gedraaid hebben: een shell-fout halverwege zou
# anders als "niets aan de hand" langskomen.
for kop in "Installatie" "Docker" "Container" "Bereikbaarheid" \
"Account" "Mappen" "Bijwerken vanuit de interface"; do
printf '%s\n' "$uit" | grep -q "^$kop$" || {
echo "FOUT: --doctor kwam niet tot de sectie '$kop'"; exit 1; }
done
echo "--doctor liep van begin tot eind"
# En de uitslag telt mee. Waarschuwingen mogen (deze deploy draait
# bewust nog als root), fouten niet.
if [ "$code" -ne 0 ]; then
echo "FOUT: --doctor meldt problemen met de deploy"
exit 1
fi
echo "--doctor liep van begin tot eind, zonder fouten"
- name: Oude images opruimen (behoud laatste 5)
if: success()