v0.8.07-beta - opruimen mag de uitslag van de backuptest niet bepalen
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 16m13s
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 16m13s
De rondgang doorliep alle vijf de stappen goed en de CI-stap viel er daarna alsnog op om, zonder melding: tussen "Rondgang geslaagd" en het einde zaten tweeenhalve seconde en verder niets. Dat is het opruimblok. - opruimen kan de uitslag niet meer bepalen; mislukt het, dan staat dat er - het script eindigt expliciet met exitcode 0 - de CI drukt de exitcode van de stap af, want zonder dat getal was niet te achterhalen waar een rode job vandaan kwam terwijl het scherm groen was De postgres-race uit v0.8.06 is bevestigd opgelost: de rondgang liep in een keer door. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9eqpADJSRs49SoGGr4NAy
This commit is contained in:
parent
9fb31dfa9e
commit
2a50b5a92c
4 changed files with 46 additions and 5 deletions
|
|
@ -247,7 +247,7 @@ jobs:
|
||||||
# host opgezocht, niet in deze container.
|
# host opgezocht, niet in deze container.
|
||||||
- name: Backup en terugzetten met echte Docker
|
- name: Backup en terugzetten met echte Docker
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -uo pipefail
|
||||||
PROEF="$DEPLOY_DIR/.backup-rondgang"
|
PROEF="$DEPLOY_DIR/.backup-rondgang"
|
||||||
rm -rf "$PROEF"; mkdir -p "$PROEF"
|
rm -rf "$PROEF"; mkdir -p "$PROEF"
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
|
|
@ -257,6 +257,13 @@ jobs:
|
||||||
-e PYTHONDONTWRITEBYTECODE=1 \
|
-e PYTHONDONTWRITEBYTECODE=1 \
|
||||||
"server-up:${VERSION}" \
|
"server-up:${VERSION}" \
|
||||||
python tools/backup_rondgang.py "$PROEF"
|
python tools/backup_rondgang.py "$PROEF"
|
||||||
|
code=$?
|
||||||
|
# De exitcode expliciet tonen. Een run die "Rondgang geslaagd" op het
|
||||||
|
# scherm zette en tóch rood werd, liet nergens zien waar dat vandaan
|
||||||
|
# kwam — en zonder dit getal is dat niet te achterhalen.
|
||||||
|
echo "rondgang exitcode: $code"
|
||||||
|
rm -rf "$PROEF" || true
|
||||||
|
[ "$code" -eq 0 ] || exit 1
|
||||||
|
|
||||||
# `--doctor` is ruim honderd regels shell die alleen tegen een échte
|
# `--doctor` is ruim honderd regels shell die alleen tegen een échte
|
||||||
# installatie draaien. De pytest-suite komt niet verder dan "er is geen
|
# installatie draaien. De pytest-suite komt niet verder dan "er is geen
|
||||||
|
|
|
||||||
21
CHANGELOG.md
21
CHANGELOG.md
|
|
@ -1,3 +1,24 @@
|
||||||
|
# v0.8.07-beta — "Rondgang geslaagd" en toch een rode job
|
||||||
|
|
||||||
|
De backup-rondgang doorliep alle vijf de stappen goed — dump, archief, alles
|
||||||
|
weggooien, terugzetten, eigenaar bewaard, database schrijft weer — en de
|
||||||
|
CI-stap viel er daarna alsnog op om. Zonder melding: tussen "Rondgang geslaagd"
|
||||||
|
en het einde van de stap zaten tweeënhalve seconde en verder niets.
|
||||||
|
|
||||||
|
Dat is het opruimblok. Dat hoort de uitslag niet te bepalen: of een
|
||||||
|
testcontainer zich laat verwijderen zegt niets over of backups werken. Een fout
|
||||||
|
daar liet nu de hele stap vallen, en omdat er niets werd afgedrukt was er ook
|
||||||
|
niets aan te zien.
|
||||||
|
|
||||||
|
- opruimen kan de uitslag niet meer bepalen; mislukt het, dan staat dát er
|
||||||
|
- het script eindigt expliciet met exitcode 0, zodat er geen twijfel over de
|
||||||
|
afloop kan bestaan
|
||||||
|
- de CI drukt de exitcode van de stap af. Zonder dat getal was niet te
|
||||||
|
achterhalen waar een rode job vandaan kwam terwijl het scherm groen was
|
||||||
|
|
||||||
|
De postgres-race uit v0.8.06 is hiermee bevestigd opgelost: de rondgang liep in
|
||||||
|
één keer door.
|
||||||
|
|
||||||
# v0.8.06-beta — De backuptest in de CI struikelde over postgres
|
# v0.8.06-beta — De backuptest in de CI struikelde over postgres
|
||||||
|
|
||||||
Vier CI-runs op rij faalden, en niet op iets in Server Up: de backup-rondgang
|
Vier CI-runs op rij faalden, en niet op iets in Server Up: de backup-rondgang
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.8.06-beta
|
0.8.07-beta
|
||||||
|
|
|
||||||
|
|
@ -219,9 +219,22 @@ def main() -> None:
|
||||||
|
|
||||||
kop("Rondgang geslaagd")
|
kop("Rondgang geslaagd")
|
||||||
finally:
|
finally:
|
||||||
subprocess.run(["docker", "rm", "-f", f"{STACK}-db"],
|
# Opruimen mag de uitslag niet bepalen. De rondgang was hierboven al
|
||||||
capture_output=True, timeout=120)
|
# geslaagd of gefaald; een container die zich niet laat verwijderen of
|
||||||
shutil.rmtree(basis, ignore_errors=True)
|
# een map die vastzit is vervelend, maar zegt niets over backups.
|
||||||
|
# Eerder kon een fout hier de hele stap laten vallen zónder melding:
|
||||||
|
# "Rondgang geslaagd" op het scherm en toch een rode job.
|
||||||
|
try:
|
||||||
|
subprocess.run(["docker", "rm", "-f", f"{STACK}-db"],
|
||||||
|
capture_output=True, timeout=120)
|
||||||
|
except Exception as e:
|
||||||
|
print(f" opruimen van de container mislukte: {e}", flush=True)
|
||||||
|
try:
|
||||||
|
shutil.rmtree(basis, ignore_errors=True)
|
||||||
|
except Exception as e:
|
||||||
|
print(f" opruimen van {basis} mislukte: {e}", flush=True)
|
||||||
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
# Expliciet, zodat er geen twijfel over de afloop kan bestaan.
|
||||||
|
raise SystemExit(0)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue