Skip to content

Artefakt-Uploads nur bei Fehlschlag, Aufbewahrung 1 Tag (Karte 942) - #83

Merged
daniel-marthaler merged 1 commit into
masterfrom
chore/artifact-uploads-on-failure
Aug 23, 2026
Merged

Artefakt-Uploads nur bei Fehlschlag, Aufbewahrung 1 Tag (Karte 942)#83
daniel-marthaler merged 1 commit into
masterfrom
chore/artifact-uploads-on-failure

Conversation

@daniel-marthaler

Copy link
Copy Markdown
Collaborator

Warum

Die Org laeuft auf GitHub Free (500 MB Actions-Storage inklusive) und das Actions-Budget steht bewusst auf 0 $ mit prevent_further_usage — es soll kein Geld an GitHub fliessen. Ist der inkludierte Speicher im Monat aufgebraucht, lehnt GitHub jeden weiteren Upload ab (Artifact storage quota has been hit), und der Zaehler laeuft erst am 1. des Folgemonats zurueck.

Gemessen am 23.08.2026 ueber die neue Billing-API: 847 GB-Stunden Actions-Storage im August, rund das 2,3-Fache des Inklusivvolumens. Genau deshalb blockieren die Uploads seit dem 22.08. — und deshalb hat das Loeschen aller 2028 Artefakte nichts gebracht: der Monatszaehler ist bereits verbraucht.

Was der Kostentreiber war

Die Uploads der erfolgreichen Laeufe. Gemessen an den 26 verbliebenen Artefakten in plaintext-root:

Artefakt pro Lauf bisher
coverage-reports 3,6 MB always(), 7 Tage
test-results 1,5 MB always(), 3 Tage
owasp-dependency-check-* 0,15 MB always(), 7 Tage

Bei ~2 Releases/Tag ueber fuenf Projekte summiert sich das. Konsumiert werden diese Artefakte nirgends: im gesamten plaintext-Verbund gibt es keinen download-artifact-Schritt dafuer, und die Coverage-Tabelle im Job-Summary entsteht direkt aus dem Workspace (find ... jacoco.csv), nicht aus dem Artefakt. Bei einem gruenen Lauf ist der Report Ballast, bei einem roten die Grundlage der Nachanalyse.

Was sich aendert

  • Test Results, Coverage, Integration-Tests und Playwright (DEV und PROD): always()failure(), Aufbewahrung auf 1 Tag.
  • OWASP-Report: bleibt always() — er ist der CVE-Nachweis fuer das woechentliche Quality-Gate und mit 0,15 MB unkritisch. Aufbewahrung 7 → 3 Tage.

Build & Test traegt bewusst kein continue-on-error, ein Testfehler faerbt den Job also rot — failure() greift damit genau dann, wenn die Reports gebraucht werden.

Erwarteter Effekt

Erfolgreiche Laeufe laden nichts mehr hoch. Da der ueberwiegende Teil der Laeufe gruen ist, faellt der Actions-Storage von 847 GB-Stunden/Monat auf einen Bruchteil und bleibt dauerhaft im kostenlosen Rahmen (365 GB-Stunden entsprechen den inkludierten 500 MB).

Hinweis zur Erwartungshaltung: Dieser PR wirkt ab dem naechsten Monat. Bis zum 1. September bleiben Uploads blockiert — der August-Zaehler ist verbraucht, und ohne Budget gibt es keinen Weg daran vorbei. Das ist die gewollte Konsequenz des 0-$-Budgets, kein Fehler.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HddM3JgkP5wqk1j7EEspck

…arte 942)

Die Org laeuft auf GitHub Free (500 MB Actions-Storage inklusive) und das
Actions-Budget steht bewusst auf 0 $ mit "prevent further usage". Ist der
inkludierte Speicher im Monat aufgebraucht, lehnt GitHub jeden weiteren
Upload ab ("Artifact storage quota has been hit") — und der Zaehler laeuft
erst am 1. des Folgemonats zurueck. Gemessen am 23.08.2026: 847 GB-Stunden
im August, rund das 2,3-Fache des Inklusivvolumens.

Kostentreiber waren die Uploads der ERFOLGREICHEN Laeufe: coverage-reports
3,6 MB und test-results 1,5 MB pro Lauf (gemessen an den 26 verbliebenen
Artefakten in plaintext-root), bei ~2 Releases/Tag ueber fuenf Projekte.
Konsumiert werden sie nirgends — im gesamten plaintext-Verbund gibt es
keinen download-artifact-Schritt dafuer; die Coverage-Tabelle im Job-Summary
entsteht direkt aus dem Workspace. Bei gruenem Lauf ist der Report Ballast,
bei rotem die Grundlage der Nachanalyse.

- Test Results, Coverage, Integration-Tests + Playwright (DEV und PROD):
  always() -> failure(), Aufbewahrung auf 1 Tag
- OWASP-Report: bleibt always() (CVE-Nachweis fuer das woechentliche
  Quality-Gate, nur 0,15 MB), Aufbewahrung 7 -> 3 Tage

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HddM3JgkP5wqk1j7EEspck
@daniel-marthaler
daniel-marthaler merged commit 092b70b into master Aug 23, 2026
1 check passed
@daniel-marthaler
daniel-marthaler deleted the chore/artifact-uploads-on-failure branch August 23, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant