Zum Inhalt springen
🛠️ToolsShed

GitHub Actions Generator

Generiere GitHub-Actions-Workflow-YAML für CI/CD-Pipelines mit benutzerdefinierten Triggern, Jobs und Schritten.

name: CI
on:
  push:
    branches: [main, master]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Build
        run: npm run build

Über dieses Tool

GitHub Actions Generator ist ein browsergestütztes Tool, das Entwicklern bei der Erstellung von CI/CD-Workflow-Dateien hilft, ohne YAML-Syntax manuell zu schreiben. Durch die Auswahl von Triggern, Jobs und Build-Schritten über eine intuitive Benutzeroberfläche generiert das Tool automatisch produktionsreife Workflow-YAML, die Sie direkt in das Verzeichnis .github/workflows Ihres Repositories kopieren können.

Um dieses Tool zu verwenden, definieren Sie zunächst Ihren Workflow-Trigger (Push-Ereignisse, Pull-Requests, geplante Zeiten oder manuelle Auslösung) und konfigurieren Sie dann die Jobs und Schritte, die jeder Job ausführen soll. Sie können mehrere Jobs hinzufügen, die nacheinander oder parallel ausgeführt werden, Umgebungsvariablen festlegen und häufige Aktionen wie die Installation von Abhängigkeiten, das Ausführen von Tests, das Erstellen von Code und die Bereitstellung in der Produktionsumgebung einschließen. Dieser Ansatz ist ideal für Teams, die erstmals die kontinuierliche Integration einrichten, Entwickler, die YAML-Syntaxfehler vermeiden möchten, oder alle, die einen visuellen Workflow-Builder dem manuellen Codieren von Konfigurationsdateien vorziehen.

Das generierte YAML ist vollständig mit GitHub Actions kompatibel und erfordert keine zusätzliche Formatierung. Fügen Sie es direkt in Ihre Workflow-Datei ein und passen Sie Secrets oder Anmeldeinformationen nach Bedarf an. Obwohl dieses Tool die Workflow-Erstellung vereinfacht, können komplexe Multi-Environment-Bereitstellungen oder fortgeschrittene Caching-Strategien von einer manuellen Feinabstimmung der generierten Ausgabe profitieren.

Häufig gestellte Fragen

Code-Implementierung

import yaml

def generate_github_actions_workflow(
    name: str,
    trigger: str,
    jobs: list[dict]
) -> str:
    workflow = {
        "name": name,
        "on": {},
        "jobs": {}
    }

    if trigger == "push":
        workflow["on"] = {"push": {"branches": ["main"]}}
    elif trigger == "pull_request":
        workflow["on"] = {"pull_request": {"branches": ["main"]}}
    elif trigger == "schedule":
        workflow["on"] = {"schedule": [{"cron": "0 0 * * *"}]}
    else:
        workflow["on"] = {trigger: {}}

    for job in jobs:
        job_id = job["id"]
        workflow["jobs"][job_id] = {
            "runs-on": job.get("runs_on", "ubuntu-latest"),
            "steps": job.get("steps", [])
        }

    return yaml.dump(workflow, default_flow_style=False, sort_keys=False)

# Example: Node.js CI workflow
jobs = [
    {
        "id": "build",
        "runs_on": "ubuntu-latest",
        "steps": [
            {"uses": "actions/checkout@v4"},
            {"name": "Setup Node", "uses": "actions/setup-node@v4",
             "with": {"node-version": "20"}},
            {"name": "Install dependencies", "run": "npm ci"},
            {"name": "Run tests", "run": "npm test"},
        ]
    }
]

yaml_output = generate_github_actions_workflow("CI", "push", jobs)
print(yaml_output)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.