
GitHub Actions: Workflow-YAML prüfen und korrigieren
Kaputtes YAML, fehlendes `on` oder `jobs`, leere Steps: Workflow-Struktur vor dem Push prüfen — actionlint bleibt in der CI.
Warum ein Workflow prüfen, bevor er auf main landet?
Eine Datei .github/workflows/*.yml, die nicht parst, oder ein Job ohne runs-on, fällt oft erst nach dem Push auf: roter Haken, GitHub-Logs, blockierte Review. FastMinify liefert kein actionlint. Der GitHub-Actions-Validator prüft strukturell im Browser — on, jobs, steps mit run oder uses — und der GitHub-Actions-Formatter rückt YAML ein (2-Leerzeichen-Konvention). Der Cluster liegt im CI/CD-Hub. JS/CSS in der Pipeline minifizieren: CI/CD-Minifizierungsleitfaden.
Workflow-Anatomie: was FastMinify prüft (und was nicht)
Ein Workflow ist ein einziges YAML-Dokument. GitHub erwartet einen Trigger on und eine Map jobs. Jeder Job braucht einen Runner (runs-on), einen wiederverwendbaren Workflow (uses) oder eine steps-Liste. Jeder Step muss run oder uses definieren.
---) werden abgelehntuses auf Job-Ebene ohne steps ist zulässig; verschachteltes YAML wird nicht tief geprüftjobs oder leere steps ergeben eine Warnung, nicht immer einen Blockeron-Trigger nach erfolgreichem ParseFastMinify stellt zwei Tools bereit. Keines davon ist actionlint. Wer die drei vermischt, bekommt Workflows, die „gültig“ aussehen und in der CI trotzdem scheitern.
Before
After
js-yaml-Roundtrip, 2-Leerzeichen-Einzug (GitHub-Konvention) — siehe format-github-actionson / jobs / Steps — siehe validate-github-actions${{ }}-Ausdrücke, Permissions, IDs, Action-Lookup — in der CI, nicht in FastMinifyactions/checkout@v4 existiert oder ein Ausdruck sicher istNicht vertrauenswürdigen Kontext (github.event.issue.title, ein PR-Label) direkt in run: zu interpolieren ist ein klassisches Script-Injection-Muster. FastMinify wertet keine Ausdrücke aus und markiert dieses Muster nicht.
env: übergeben, nicht in das Skript interpolierenpermissions: auf das Minimum beschränken (contents, pull-requests)run oder uses — auch wenn das Skript unsicher istValidieren, dann formatieren: ein konkreter Ablauf
Öffnen Sie den GitHub-Actions-Validator, fügen Sie eine einzelne Workflow-Datei ein (max. 512 KiB) und warten Sie auf Debounce (~300 ms). Das Panel zeigt Verdict, Issues mit Zeilenhinweis bei Parse-Fehlern und Zähler für Jobs/Steps/Trigger. Leeres Feld bleibt idle — nicht „ungültig“.
Der GitHub-Actions-Formatter pretty-printet via js-yaml. Einfügen, Upload oder Sample: Auto-Format; nach manueller Bearbeitung den Format-Button (⌘↵). Die UI folgt der 2-Leerzeichen-Konvention. Das ist kein semantischer Rewriter.
Ein Teammitglied hat - name: empty step ohne Skript ergänzt. Die CI scheitert spät, mit einer GitHub-Meldung, die im PR-Overlay schwer lesbar ist.
Schritt 1: Workflow in validate-github-actions einfügen
Öffnen Sie validate-github-actions. Ein ungültiges Verdict wie „step needs run or uses“ zeigt auf den leeren Step.
Schritt 2: run oder uses ergänzen
Den Step durch uses: actions/checkout@v4 oder ein echtes run: ersetzen. Erneut einfügen, bis das Panel eine gültige Struktur zeigt.
Schritt 3: formatieren und PR öffnen
Das korrigierte YAML durch format-github-actions schicken, kopieren, committen. Reviewer lesen eingerückte Jobs, kein Blob.
Ein Beispiel aus der GitHub-Doku oder einem Gist kommt mit gemischten Leerzeichen. Sie sehen nicht mehr, wo ein Job endet.
Schritt 1: zuerst formatieren, wenn die Datei unlesbar ist
In format-github-actions einfügen. Dieser Schritt beweist nicht, dass der Workflow strukturell vollständig ist.
Schritt 2: das eingerückte Dokument validieren
Die Ausgabe in den Validator kopieren. on, jobs und jeden Step mit Action prüfen.
Schritt 3: actionlint in der CI behalten
Ist die Form in Ordnung, bleiben Ausdrücke / IDs / Marketplace in der Pipeline — FastMinify ersetzt dieses Gate nicht.
actionlint (und Minify) in der CI behalten
Der Browser ist die schnelle Schleife vor git push. Teams behalten actionlint als Merge-Gate für ${{ }}-Ausdrücke und Regeln, die FastMinify nicht umsetzt. Das Snippet folgt dem offiziellen actionlint-Download-Skript: eine Version im Repo pinnen, kein gleitendes main. JS/CSS in derselben Pipeline minifizieren: CI/CD-Minifizierungsleitfaden.
Basic example
Liegt das Repo auf GitLab, sind die Pendants format-gitlab-ci und validate-gitlab-ci — dieselbe Idee (YAML plus Struktur, kein Runner). Dockerfile und Compose bleiben im DevOps-Hub: Dockerfile linten, Compose und .env validieren.
Fazit
Workflow einfügen, Struktur korrigieren (on, jobs, Steps), neu einrücken, dann pushen. FastMinify macht diese Schleife lokal und lädt das YAML nicht hoch. Das ist kein actionlint: Ausdrücke, erweiterte Permissions und die Existenz von Actions bleiben in CI und Review. Für generisches YAML bei beautify-yaml bleiben; für GitLab im selben CI/CD-Hub.
Verwandte Artikel

SDL-Syntaxfehler, Schema-Review und Formatierung vor dem Merge — ergänzt den bestehenden GraphQL-Beautifier.

Senken Sie Ihre OpenAI-/Anthropic-/Gemini-Rechnung: Input/Output schätzen, Batch und Caching in der Kalkulation aktivieren — geprüfte Tarife, 100 % lokal.

RAG, Multi-Turn-Agenten, System-Prompts: Kontextfenster-Auslastung und verbleibende Reserve vor dem API-Aufruf berechnen.