CI: release-scripts-job is flaky op de runner #137
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De
CI / release-scripts-job faalde op 2026-07-19 drie keer op drie verschillende heads (renovate/nldd, fase-1-fundament-v2921ba9c, en de migratie-test-branch8919ecf), terwijlbash .forgejo/scripts/test-release-scripts.shlokaal tegen exact die heads groen is en de job op de runner tussendoor ook meermaals slaagde (o.a. #127, herkansing #124).De scripts zelf zijn puur bash, deterministisch, zonder jq/curl/sudo-afhankelijkheid. De failures vallen samen met drukte op de runner (meerdere parallelle runs), dus vermoedelijk een runner-/checkout-probleem, geen scriptfout. Logs zijn via de API niet op te halen (404); bij een volgende failure de web-UI-log bekijken en de oorzaak hier noteren.
Oorzaak gevonden
De duur-analyse via de tasks-API gaf de eerste hint: alle failures duren 9-11s, identiek aan de geslaagde runs (~10s). Een gecrashte checkout zou vroeg falen; de job draaide dus volledig en gaf pas aan het eind exit 1. Niet de checkout, maar de teststap.
De web-UI-log van de gefaalde attempt (run 1255, attempt 1) wees de check aan:
Twee aanroepen van het deterministische
changelog-section.sh(zelfde arg, zelfde CHANGELOG.md) geven binnen één run verschillende output. Dat kan alleen als het bestand tussendoor wijzigt (gedeelde-workspace-race) of awk intermitterend gekild wordt onder geheugendruk (set -eop de command-substitution -> exit non-zero, lege stdout). Beide zijn transient contentie-fouten in de teststap, geen scriptfout in de logica - dezelfde klasse als de e2e-poortbotsing op dezecapacity=2/host-networked runner.Fix
PR #147: de teststap draait nu in een 3x retry-loop en dumpt de CHANGELOG-staat (
wc -l+ eerste regel) op een gefaalde poging, zodat een volgende failure te duiden is zonder de auth-gated runner-logs (die inderdaad 404 gaven, zoals hier al gemeld).