GitHub-Actions-Workflow-Generator

Nächste

Ein frisches GitHub-Repository ohne CI ist nur git push von dem nächsten fehlerhaften Deployment entfernt. Dieser Generator erstellt eine Starter-.github/workflows/ci.yml für Node, PHP oder Laravel, die Checkout, die richtige Laufzeitaktion, die Installation von Abhängigkeiten und den Standard-Testbefehl verkabelt, alles, was du brauchst, um den grünen/roten Punkt zu aktivieren.

Wie man einen Workflow generiert

  1. 1

    Wähle den Stack

    Node (verwendet `actions/setup-node`), PHP (verwendet `shivammathur/setup-php`) oder Laravel (PHP + `php artisan test`).

  2. 2

    Setze den Hauptbranch

    `main` ist der Standard; überschreibe, wenn dein Repo noch `master` oder einen benutzerdefinierten Namen verwendet.

  3. 3

    Generieren

    Das Tool erstellt eine YAML-Datei mit `push` und `pull_request`-Triggern auf diesem Branch.

  4. 4

    In .github/workflows/ committen

    Erstelle die Datei unter `.github/workflows/ci.yml` und pushe, der Actions-Tab leuchtet beim nächsten Commit auf.

So sieht der Workflow aus

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

Aktionen, die vom Generator festgelegt wurden

Aktion Zweck
actions/checkout@v4 Klone das Repo in den Runner
actions/setup-node@v4 Installiere eine Node-Toolchain
shivammathur/setup-php@v2 Installiere eine PHP-Version mit Erweiterungen

Was als Nächstes hinzuzufügen ist

  • Lint-Schritt (npm run lint, ./vendor/bin/phpstan analyse) vor dem Testschritt.
  • Matrix-Build: über mehrere Node/PHP-Versionen mit strategy.matrix ausführen.
  • Coverage-Upload: codecov-action oder coveralls-action nach dem Testschritt.
  • Secrets: Tokens niemals hardcodieren, verwende secrets.XXX und definiere sie unter Einstellungen → Aktionen.

Häufige Fallstricke

  • Vergessen, Tags abzurufen: with: { fetch-depth: 0 } bei checkout, wenn deine Release-Logik Tags liest.
  • Verwendung von latest Docker-Images: Versionen festlegen, um Ausführungen Monate später reproduzierbar zu halten.
  • Ausführen einer 30-minütigen Testsuite bei jedem Push: lange Jobs mit needs: aufteilen, um zu parallelisieren.

Häufig gestellte Fragen

Unter .github/workflows/ci.yml im Wurzelverzeichnis deines Repos. GitHub erkennt jede YAML unter diesem Verzeichnis und zeigt jede als separaten Workflow im Actions-Tab an.

Pull-Requests von Forks führen den Workflow aus, jedoch mit GITHUB_TOKEN, das auf schreibgeschützt gesetzt ist. Externe Mitwirkende können nicht auf deine Secrets zugreifen, es sei denn, du stimmst ausdrücklich zu.

Füge einen strategy.matrix.php: [8.2, 8.3, 8.4] Block hinzu und verweise auf ${{ matrix.php }} im setup-php Schritt. Der Runner wird einen Job pro Version parallel starten.

Nein. Das generierte YAML wird auf der Seite angezeigt, wird nirgendwo hochgeladen oder gespeichert, und du kopierst es selbst heraus.

Verwandte Tools

Tool in anderen Sprachen verfügbar