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.