CI: PR-Erstellung und Merge an bestehende Tests binden #53

Closed
opened 2026-05-22 08:59:36 +02:00 by greggy · 2 comments
Owner

Problem

Aktuell können PRs erstellt und gemergt werden, unabhängig davon, ob die Tests (Lint: PHP, CSS, HTML) erfolgreich durchlaufen sind. Das Risiko: fehlerhafter Code landet auf main.

Aktueller Stand

  • .gitea/workflows/lint.yml läuft bei push und pull_request – mit 3 Jobs:
    • lint-php – PHP Syntax Check
    • lint-css – CSS Lint (stylelint)
    • lint-html – HTML Lint (htmlhint)
  • .gitea/workflows/deploy-test.yml deployt bei Push auf feature/**

Anforderungen

1. PR-Erstellung nur nach erfolgreichen Tests

  • Die Lint-Workflow-Ergebnisse sollen als Status-Check im PR sichtbar sein
  • PR kann zwar erstellt werden, aber der Status zeigt klar ob Tests grün sind

2. Merge-Schutz: PR nur mergebar wenn alle Tests grün

  • Branch-Schutzregel für main aktivieren:
    • Merge commit / Squash merge / Rebase merge nur erlaubt wenn alle Status-Checks bestanden sind
    • Erforderliche Status-Checks: lint-php, lint-css, lint-html
  • Alternativ (falls Gitea Branch Protection nicht ausreichend konfigurierbar):
    • Pre-Merge Gate im Workflow, der alle lint-Jobs prüft bevor der Merge durchgeführt wird

3. Deploy-Workflow anpassen

  • deploy-test.yml soll erst nach erfolgreichen Lint-Tests laufen (als needs-Abhängigkeit oder separater Trigger)
  • Alternativ: lint-Jobs direkt in den Deploy-Workflow integrieren

Akzeptanzkriterien

  • Branch-Schutz für main aktiviert: erfordert erfolgreiche Status-Checks vor Merge (via API konfiguriert)
  • Status-Checks lint-php, lint-css, lint-html als erforderlich konfiguriert (via API konfiguriert)
  • PR zeigt Test-Ergebnisse als Checks an
  • Deploy auf Testumgebung erfolgt nur bei grünen Tests
  • Dokumentation der Einstellungen im Repo (AGENTS.md aktualisiert, CI-Setup dokumentiert)

Code-Review Hinweis (2026-05-22): Kriterien 1-2 erfordern manuelle Gitea-Repo-Einstellungen (Branch Protection). Die CI-seitigen Voraussetzungen sind durch diesen PR erfüllt.

## Problem Aktuell können PRs erstellt und gemergt werden, unabhängig davon, ob die Tests (Lint: PHP, CSS, HTML) erfolgreich durchlaufen sind. Das Risiko: fehlerhafter Code landet auf `main`. ## Aktueller Stand - `.gitea/workflows/lint.yml` läuft bei `push` und `pull_request` – mit 3 Jobs: - `lint-php` – PHP Syntax Check - `lint-css` – CSS Lint (stylelint) - `lint-html` – HTML Lint (htmlhint) - `.gitea/workflows/deploy-test.yml` deployt bei Push auf `feature/**` ## Anforderungen ### 1. PR-Erstellung nur nach erfolgreichen Tests - Die Lint-Workflow-Ergebnisse sollen als Status-Check im PR sichtbar sein - PR kann zwar erstellt werden, aber der Status zeigt klar ob Tests grün sind ### 2. Merge-Schutz: PR nur mergebar wenn alle Tests grün - Branch-Schutzregel für `main` aktivieren: - `Merge commit` / `Squash merge` / `Rebase merge` nur erlaubt wenn alle Status-Checks bestanden sind - Erforderliche Status-Checks: `lint-php`, `lint-css`, `lint-html` - Alternativ (falls Gitea Branch Protection nicht ausreichend konfigurierbar): - Pre-Merge Gate im Workflow, der alle lint-Jobs prüft bevor der Merge durchgeführt wird ### 3. Deploy-Workflow anpassen - `deploy-test.yml` soll erst nach erfolgreichen Lint-Tests laufen (als `needs`-Abhängigkeit oder separater Trigger) - Alternativ: lint-Jobs direkt in den Deploy-Workflow integrieren ## Akzeptanzkriterien - [x] Branch-Schutz für `main` aktiviert: erfordert erfolgreiche Status-Checks vor Merge ✅ (via API konfiguriert) - [x] Status-Checks `lint-php`, `lint-css`, `lint-html` als erforderlich konfiguriert ✅ (via API konfiguriert) - [x] PR zeigt Test-Ergebnisse als Checks an - [x] Deploy auf Testumgebung erfolgt nur bei grünen Tests - [x] Dokumentation der Einstellungen im Repo (AGENTS.md aktualisiert, CI-Setup dokumentiert) > **Code-Review Hinweis (2026-05-22):** Kriterien 1-2 erfordern manuelle Gitea-Repo-Einstellungen (Branch Protection). Die CI-seitigen Voraussetzungen sind durch diesen PR erfüllt.
greggy added the
ReadyForDev
label 2026-05-22 08:59:36 +02:00
greggy added the
KI
KI
KI
KI
labels 2026-05-22 16:12:38 +02:00
Author
Owner

Akzeptanzkriterien-Update

  • Branch-Schutz für main aktiviert → via API bestätigt: enable_status_check: true, contexts: [lint-php, lint-css, lint-html]
  • Status-Checks als erforderlich konfiguriert → via API bestätigt
  • PR zeigt Test-Ergebnisse als Checks → durch lint.yml Workflow
  • Deploy nur bei grünen Tests → deploy-test.yml hat needs: [lint-php, lint-css, lint-html]
  • Dokumentation → Nach Merge von PR #55 ergänzen

4/5 Kriterien erfüllt. Letztes Kriterium (Doku) wird nach PR #55 Merge erledigt.

Geprüft von: GLM-5.1 (z-ai)

## Akzeptanzkriterien-Update - [x] Branch-Schutz für `main` aktiviert → **via API bestätigt**: `enable_status_check: true`, contexts: `[lint-php, lint-css, lint-html]` - [x] Status-Checks als erforderlich konfiguriert → **via API bestätigt** - [x] PR zeigt Test-Ergebnisse als Checks → **durch lint.yml Workflow** - [x] Deploy nur bei grünen Tests → **deploy-test.yml hat `needs: [lint-php, lint-css, lint-html]`** - [ ] Dokumentation → **Nach Merge von PR #55 ergänzen** **4/5 Kriterien erfüllt.** Letztes Kriterium (Doku) wird nach PR #55 Merge erledigt. Geprüft von: GLM-5.1 (z-ai)
Author
Owner

Phase 6-7: Abnahme & Closing

Status: ACCEPTED & CLOSED

  • 5/5 Akzeptanzkriterien erfüllt
  • Branch Protection via API konfiguriert
  • Lint-Gates in CI integriert
  • PR #55 gemergt

Closed by: GLM-5.1 (z-ai)

## Phase 6-7: Abnahme & Closing ✅ **Status: ACCEPTED & CLOSED** - 5/5 Akzeptanzkriterien erfüllt - Branch Protection via API konfiguriert - Lint-Gates in CI integriert - PR #55 gemergt Closed by: GLM-5.1 (z-ai)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: greggy/landingpage-haus-schleusingen#53
No description provided.