CI: Gitea Actions Pipeline mit PHP/CSS/HTML Linting #44

Closed
opened 2026-05-19 15:49:01 +02:00 by greggy · 0 comments
Owner

Ziel

Eine Gitea Actions Pipeline (gitea-workflow), die bei jedem Push/PR automatisch den Quellcode prüft. Der Commit soll nur erfolgreich sein, wenn alle Linter-Prüfungen bestehen.

Anforderungen

1. PHP Linting

  • Tool: php -l (PHP Syntax-Check)
  • Alle .php-Dateien prüfen
  • Fehler → Pipeline fails

2. CSS Linting

  • Tool: stylelint (bereits im Repo konfiguriert: .stylelintrc.json)
  • Alle .css-Dateien prüfen
  • Fehler → Pipeline fails

3. HTML Linting

  • Tool: htmlhint (bereits im Repo konfiguriert: .htmlhintrc)
  • Alle .html-Dateien prüfen
  • Fehler → Pipeline fails

Umsetzung

Workflow-Datei

.gitea/workflows/lint.yml erstellen:

name: Lint
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: PHP Syntax Check
        run: find . -name "*.php" -exec php -l {} \; 2>&1 | grep -v "No syntax errors"

      - name: CSS Lint (stylelint)
        run: |
          npm install -g stylelint stylelint-config-standard
          npx stylelint "**/*.css" --config .stylelintrc.json

      - name: HTML Lint (htmlhint)
        run: |
          npm install -g htmlhint
          npx htmlhint "**/*.html" --config .htmlhintrc

Branch-Protection

  • Branch main schützen: PR muss Lint-Pipeline bestehen bevor Merge erlaubt ist

Akzeptanzkriterien

  • .gitea/workflows/lint.yml existiert
  • PHP-Lint prüft alle .php-Dateien
  • CSS-Lint prüft alle .css-Dateien via stylelint
  • HTML-Lint prüft alle .html-Dateien via htmlhint
  • Pipeline läuft bei Push auf main und bei PRs
  • Fehlerhafter Code bringt Pipeline zum Fails
  • Branch-Protection auf main aktiviert (Pipeline muss grün sein für Merge)

Hinweis

Es existiert bereits .gitea/workflows/deploy-test.yml – der neue Workflow ergänzt diese.

Priorität

🟠 Mittel – Verbessert Code-Qualität und verhindert fehlerhaften Code auf main

## Ziel Eine Gitea Actions Pipeline (`gitea-workflow`), die bei jedem Push/PR automatisch den Quellcode prüft. Der Commit soll nur erfolgreich sein, wenn alle Linter-Prüfungen bestehen. ## Anforderungen ### 1. PHP Linting - Tool: `php -l` (PHP Syntax-Check) - Alle `.php`-Dateien prüfen - Fehler → Pipeline fails ### 2. CSS Linting - Tool: `stylelint` (bereits im Repo konfiguriert: `.stylelintrc.json`) - Alle `.css`-Dateien prüfen - Fehler → Pipeline fails ### 3. HTML Linting - Tool: `htmlhint` (bereits im Repo konfiguriert: `.htmlhintrc`) - Alle `.html`-Dateien prüfen - Fehler → Pipeline fails ## Umsetzung ### Workflow-Datei `.gitea/workflows/lint.yml` erstellen: ```yaml name: Lint on: push: branches: [main] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: PHP Syntax Check run: find . -name "*.php" -exec php -l {} \; 2>&1 | grep -v "No syntax errors" - name: CSS Lint (stylelint) run: | npm install -g stylelint stylelint-config-standard npx stylelint "**/*.css" --config .stylelintrc.json - name: HTML Lint (htmlhint) run: | npm install -g htmlhint npx htmlhint "**/*.html" --config .htmlhintrc ``` ### Branch-Protection - Branch `main` schützen: PR muss Lint-Pipeline bestehen bevor Merge erlaubt ist ### Akzeptanzkriterien - [ ] `.gitea/workflows/lint.yml` existiert - [ ] PHP-Lint prüft alle `.php`-Dateien - [ ] CSS-Lint prüft alle `.css`-Dateien via stylelint - [ ] HTML-Lint prüft alle `.html`-Dateien via htmlhint - [ ] Pipeline läuft bei Push auf `main` und bei PRs - [ ] Fehlerhafter Code bringt Pipeline zum Fails - [ ] Branch-Protection auf `main` aktiviert (Pipeline muss grün sein für Merge) ## Hinweis Es existiert bereits `.gitea/workflows/deploy-test.yml` – der neue Workflow ergänzt diese. ## Priorität 🟠 Mittel – Verbessert Code-Qualität und verhindert fehlerhaften Code auf `main`
greggy added the
KI
label 2026-05-19 15:49:01 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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