GitHub Actions Generator
Générer les YAML de workflow GitHub Actions pour les pipelines CI/CD avec déclencheurs, tâches et étapes personnalisables.
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À propos de cet outil
GitHub Actions Generator est un outil basé sur navigateur qui aide les développeurs à créer des fichiers de flux de travail CI/CD sans écrire manuellement la syntaxe YAML. En sélectionnant les déclencheurs, les emplois et les étapes de compilation via une interface intuitive, l'outil génère automatiquement du YAML de flux de travail prêt pour la production que vous pouvez copier directement dans le répertoire .github/workflows de votre dépôt.
Pour utiliser cet outil, commencez par définir le déclencheur du flux de travail (événements push, demandes pull, horaires programmés ou déclenchement manuel), puis configurez les emplois et les étapes que chaque emploi doit exécuter. Vous pouvez ajouter plusieurs emplois s'exécutant séquentiellement ou en parallèle, spécifier des variables d'environnement et inclure des actions courantes comme l'installation de dépendances, l'exécution de tests, la compilation du code et le déploiement en production. Cette approche est idéale pour les équipes mettant en place l'intégration continue pour la première fois, les développeurs qui veulent éviter les erreurs de syntaxe YAML, ou quiconque préférant un générateur visuel de flux de travail plutôt que de coder manuellement des fichiers de configuration.
Le YAML généré est entièrement compatible avec GitHub Actions et ne nécessite pas de mise en forme supplémentaire. Collez-le directement dans votre fichier de flux de travail et personnalisez les secrets ou les identifiants selon vos besoins. Bien que cet outil simplifie la création de flux de travail, les déploiements complexes dans plusieurs environnements ou les stratégies de mise en cache avancées peuvent encore bénéficier d'un ajustement fin manuel de la sortie générée.
Questions Fréquentes
Implémentation du Code
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.