Vai al contenuto
🛠️ToolsShed

GitHub Actions Generator

Genera GitHub Actions workflow YAML per pipeline CI/CD con trigger, job e step personalizzabili.

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

Informazioni sullo strumento

GitHub Actions Generator è uno strumento basato su browser che aiuta gli sviluppatori a creare file di flusso di lavoro CI/CD senza scrivere manualmente la sintassi YAML. Selezionando trigger, job e passaggi di compilazione attraverso un'interfaccia intuitiva, lo strumento genera automaticamente YAML di flusso di lavoro pronto per la produzione che è possibile copiare direttamente nella directory .github/workflows del tuo repository.

Per utilizzare questo strumento, inizia definendo il trigger del flusso di lavoro (eventi push, richieste pull, orari pianificati o attivazione manuale), quindi configura i job e i passaggi che ogni job deve eseguire. Puoi aggiungere più job che vengono eseguiti sequenzialmente o in parallelo, specificare variabili di ambiente e includere azioni comuni come l'installazione delle dipendenze, l'esecuzione di test, la compilazione del codice e la distribuzione in produzione. Questo approccio è ideale per i team che configurano l'integrazione continua per la prima volta, gli sviluppatori che desiderano evitare errori di sintassi YAML, o chiunque preferisca un costruttore visuale di flussi di lavoro rispetto alla codifica manuale di file di configurazione.

Lo YAML generato è completamente compatibile con GitHub Actions e non richiede ulteriore formattazione. Incollalo direttamente nel tuo file di flusso di lavoro e personalizza i segreti o le credenziali secondo necessità. Sebbene questo strumento semplifichi la creazione del flusso di lavoro, le distribuzioni complesse in più ambienti o le strategie di caching avanzate possono comunque beneficiare dalla messa a punto manuale dell'output generato.

Domande Frequenti

Implementazione del Codice

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.