GitHub Actions
GitHub Actions Automation & DevOps CI/CD

GitHub Actions CI/CD Workflow YAML Generator

Erstellen Sie produktionsreife GitHub Actions Workflow-YAML-Pipelines für Node.js, Go, Python, Docker-Builds, Tests und automatisierte Releases mit Best-Practice-Sicherheit.

100% Client-seitige Privatsphäre
Null Serverübertragung
Voreinstellungen:
Ereignis-Trigger & Branches
Aktive Trigger:
Laufzeit & Matrix-Strategie
Build-, Test- & Cache-Schritte
Sicherheit, Secrets & Parallelität
.github/workflows/nodejs-ci.yml Syntax verifiziert (v4)
name: Node.js CI/CD Pipeline

on:
  push:
    branches:
      - 'main'
      - 'master'
  pull_request:
    branches:
      - 'main'
      - 'master'
  workflow_dispatch:
  release:
    types: [published]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: write

jobs:
  build-and-test:
    name: NODE Test & Build
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        node-version: ['18.x', '20.x', '22.x']
    steps:
      - name: Checkout code repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Install pnpm package manager
        uses: pnpm/action-setup@v4
        with:
          version: 'latest'

      - name: Set up Node.js runtime environment
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'pnpm'

      - name: Install project dependencies
        run: pnpm install --frozen-lockfile

      - name: Run code linter and style check
        run: pnpm run lint

      - name: Run static typecheck
        run: pnpm run typecheck

      - name: Run automated test suite
        run: pnpm test -- --coverage

      - name: Compile and build production bundle
        run: pnpm run build

      - name: Upload build artifact
        uses: actions/upload-artifact@v4
        with:
          name: node-js-ci-cd-pipeline-artifact
          path: dist/
          retention-days: 7

      - name: Create GitHub Release on tag
        if: startsWith(github.ref, 'refs/tags/')
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
          files: dist/**
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Ziel-Laufzeit
NODE • ubuntu
Pipeline-Schritte
9 Schritte • ~5.2m Laufzeit
Sicherheits-Score
100/100 • Geringste Berechtigung

Lokale Generierung ohne Latenz

Erstellt gehärtete GitHub Actions Workflows direkt im Browserspeicher, ohne dass vertrauliche Repository-Konfigurationen übertragen werden.

Enterprise Sicherheits-Härtung

Erzwingt Least-Privilege-Berechtigungen, parallele Auftragsabbrüche, Job-Timeouts und Versions-Pinning gegen Supply-Chain-Risiken.

Mehrsprachige Matrix-Unterstützung

Optimierte Vorlagen für Node.js, Python, Go, Rust, Docker und GitHub Pages mit automatischer Paketverwaltung und Cache.

Technische Referenz & Architektur-Leitfaden

GitHub Actions CI/CD-Workflow YAML-Generator — Referenz-Leitfaden

Erstellen Sie produktionsreife GitHub Actions Workflow-YAML-Pipelines für Node.js, Go, Python, Docker-Builds, Tests und automatisierte Releases mit Best-Practice-Sicherheit.

Wichtige Parameter & Steuerelemente

namestring

Der Name des Workflows, der in den GitHub Actions-Tabs, Status-Badges und PR-Zusammenfassungen angezeigt wird.

Standard: CI / CD Pipeline
onstring | object

Definiert Webhook-Ereignisse, die die Pipeline auslösen (z. B. push, pull_request, Cron-Zeitpläne oder workflow_dispatch).

Standard: push, pull_request
runs-onstring | array

Gibt das Betriebssystem des Runners an (ubuntu-latest, macos-latest, windows-latest) oder benutzerdefinierte Self-Hosted-Labels.

Standard: ubuntu-latest
permissionsobject | string

Konfiguriert Zugriffsrechte nach dem Least-Privilege-Prinzip für das temporäre GITHUB_TOKEN (z. B. contents: read).

Standard: contents: read
concurrencyobject | string

Verhindert redundante parallele Läufe pro Branch; bricht mit cancel-in-progress veraltete Jobs ab, um Runner-Minuten zu sparen.

Standard: group: ${{ github.ref }}, cancel-in-progress: true

Profi-Tipps & Best Practices

Referenzieren Sie Actions mit dem

Referenzieren Sie Actions mit dem vollständigen 40-stelligen Commit-SHA anstelle veränderlicher Versionstags (z. B. actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1), um Supply-Chain-Angriffe zu verhindern.

Verwenden Sie Concurrency-Gruppen mit

Verwenden Sie Concurrency-Gruppen mit 'cancel-in-progress: true', um veraltete CI-Läufe automatisch zu beenden, sobald Entwickler neue Commits auf denselben Branch pushen.

Deklarieren Sie global 'permissions

Deklarieren Sie global 'permissions: {}' (Zugriff standardmäßig verweigert) und schalten Sie nur die zwingend benötigten Scopes (wie contents: read oder packages: write) gezielt im jeweiligen Job frei.

Nutzen Sie integrierte

Nutzen Sie integrierte Caching-Parameter wie 'cache: npm' in actions/setup-node oder 'cache: pip' in actions/setup-python, statt separate Cache-Schritte manuell zu konfigurieren.

Häufige Fallstricke & Fehlerbehebung

Prozess bricht mit Exit-Code 1 wegen fehlender Secrets oder leerer Umgebungsvariablen ab

Überprüfen Sie die Secrets unter Settings > Secrets and variables > Actions. Aus Sicherheitsgründen werden Secrets bei PRs aus Forks standardmäßig nicht übergeben.

Fehler HTTP 403 (Resource not accessible by integration) beim Veröffentlichen von Releases oder Artefakten

Fügen Sie dem Job explizite Schreibberechtigungen hinzu: 'permissions: { contents: write, packages: write }'. In modernen Repositories ist das GITHUB_TOKEN standardmäßig schreibgeschützt.

Workflow startet nicht bei zeitgesteuerten Cron-Events oder Tag-Pushes

Stellen Sie sicher, dass die Workflow-YAML im Standard-Branch (main oder master) liegt. GitHub wertet geplante Cron-Trigger ausschließlich auf dem Standard-Branch aus.

Häufig gestellte Fragen (FAQ)

Was ist der wesentliche Unterschied zwischen Jobs und Steps in GitHub Actions?▼

Ein Job wird auf einer isolierten virtuellen Maschine ausgeführt und läuft standardmäßig parallel zu anderen Jobs (sofern nicht mit 'needs' verkettet). Steps laufen sequenziell innerhalb eines einzelnen Jobs und teilen sich Dateisystem und Umgebung.

Warum wird das Anheften an Commit-SHAs statt Versionstags dringend empfohlen?▼

Tags wie @v4 sind veränderliche Git-Referenzen. Wird das Upstream-Repository kompromittiert, könnte bösartiger Code eingeschleust werden. Ein unveränderlicher SHA stellt sicher, dass stets exakt der geprüfte Code ausgeführt wird.

Wie funktioniert workflow_dispatch für manuelle und parametrisierte Pipelines?▼

Durch Hinzufügen von 'workflow_dispatch:' unter 'on:' erscheint in der GitHub-Oberfläche die Schaltfläche 'Run workflow'. Dabei können Eingabefelder (Booleans, Text oder Dropdown-Listen) definiert werden.

Wie lassen sich Laufzeiten und verbrauchte Runner-Minuten effektiv optimieren?▼

Aktivieren Sie Dependency-Caching, nutzen Sie Matrix-Builds, brechen Sie veraltete Läufe mit Concurrency-Regeln ab und filtern Sie Auslöser mit 'paths' oder 'paths-ignore', damit CI nur bei relevanten Dateiänderungen läuft.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →
Linux Logrotate-Konfigurationsgenerator (Aufbewahrung & Komprimierung)Entwickler

Erstellen Sie produktionsreife /etc/logrotate.d/-Konfigurationsdateien mit täglicher/wöchentlicher Rotation, gzip-Komprimierung, dateext, Größenbeschränkungen und postrotate-Skripten.

Werkzeug öffnen→
Ubuntu Netplan Netzwerk-Konfiguration YAML-Generator Entwickler-GuideEntwickler

Generieren Sie Ubuntu 20.04/22.04/24.04 Netplan YAML-Konfigurationen für statische IP-Adressen, DHCP, DNS-Nameserver, Gateway-Routen, Bridges und Bonding.

Werkzeug öffnen→
SQL DDL zu Python SQLAlchemy 2.0 Modell-GeneratorEntwickler

Konvertieren Sie SQL CREATE TABLE-Anweisungen in stark typisierte Python SQLAlchemy 2.0 DeclarativeBase-Modelle mit modernen Mapped- und mapped_column-Typannotationen.

Werkzeug öffnen→
SQL-DDL zu Golang GORM Struct-Modell GeneratorEntwickler

Konvertieren Sie SQL CREATE TABLE-Schemas nahtlos in Golang Struct-Definitionen mit GORM-Tags, JSON-Tags und typsicheren Go-Mappings.

Werkzeug öffnen→
SQL-DDL zu Sequelize-TypeScript-Modell-GeneratorEntwickler

Vollständige Entwicklerdokumentation zur Konvertierung von SQL CREATE TABLE DDL-Anweisungen in typsichere Sequelize-TypeScript-Modelle, DataTypes-Definitionen, CreationOptional-Attribute und Model.init-Deklarationen.

Werkzeug öffnen→
Json To Elixir Ecto Entwickler-ReferenzEntwickler

Architektur- und Konfigurationsleitfaden für die Kompilierung von JSON-Nutzdaten in produktionsreife Elixir-Ecto-Schemas, Migrationen, Changesets und Dialyzer-Typespecs.

Werkzeug öffnen→