diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 5ade4cf..663e4c7 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -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()