Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Failing after 31s
Gespiegelt von Core QA-01: Testpyramide (Unit/Integration/Wiederherstellungs- test/Extern), Pflichttests fuer sicherheitskritischen Code als technisch erzwungenes Merge-Gate statt Dokumentationsvorgabe. Sicherheitskritische Bereiche fuer Archive (docs/TESTSTRATEGIE-ARCHIVE.md Abschnitt 3): wormstore (WORM-Durchsetzung selbst), rbacclient/retentionapi (Zugriffspruefung), tenantregistryclient/kekclient/backupcrypto (Tenant-/ Schluessel-Bezug). internal/pflichttestgate + cmd/pflichttestgate pruefen das automatisiert gegen den PR-Diff, .gitea/workflows/archive-pflichttest- gate.yml fuehrt es in CI aus (Pfad-Filter auf archive/**, da Monorepo mit mehreren physisch getrennten Go-Modulen). internal/referenceset liefert den in Abschnitt 4 definierten, synthetischen Referenzdatensatz (Retention-Objekte je Fristklasse, WORM-Nutzdaten in drei Groessenklassen, Backup-Generationen mit geteilten/eindeutigen Bloecken) - keine echten Kunden-/Mandantendaten (DSGVO-Vorgabe), reproduzierbar per festem Seed, Nachweis in referenceset_test.go. Offen: Gegenlesen durch zweite Person (Akzeptanzkriterium 3) - wie bei Core QA-01 im PR nachzutragen, blockiert nicht das technische Inkrafttreten des Gates. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
612 B
YAML
24 lines
612 B
YAML
name: Archive-Pflichttest-Gate
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "archive/**"
|
|
|
|
jobs:
|
|
pflichttest-gate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.22"
|
|
- name: Gate bauen
|
|
working-directory: archive
|
|
run: go build -o /tmp/pflichttestgate ./cmd/pflichttestgate
|
|
- name: Geänderte Dateien gegen Pflichttest-Regel pruefen
|
|
run: |
|
|
git diff --name-only "origin/${{ github.base_ref }}...HEAD" -- archive/ | /tmp/pflichttestgate
|