Salta al contenuto principale

Impostazioni Workflow

Trigger degli Eventi

Guida Rapida

Action Comuni

  • actions/checkout@v4 - Checkout del repository
  • actions/setup-node@v4 - Configura Node.js
  • actions/setup-java@v4 - Configura il JDK
  • actions/setup-python@v5 - Configura Python
  • actions/setup-go@v5 - Configura Go
  • actions/upload-artifact@v4 - Carica artifact
  • actions/download-artifact@v4 - Scarica artifact
  • docker/login-action@v3 - Login al registry Docker

Variabili di Contesto

  • $${{ github.sha }} - SHA del commit
  • $${{ github.ref }} - Riferimento branch/tag
  • $${{ github.actor }} - Utente che ha attivato il workflow
  • $${{ github.repository }} - owner/repo
  • $${{ secrets.NAME }} - Secret del repository
  • $${{ env.KEY }} - Variabile d'ambiente
  • $${{ matrix.os }} - OS corrente della matrix
  • $${{ runner.os }} - Nome del sistema operativo del runner

Esempi di Pianificazione Cron

  • 0 0 * * * - Ogni giorno a mezzanotte UTC
  • 0 9 * * 1-5 - Nei giorni feriali alle 09:00 UTC
  • */15 * * * * - Ogni 15 minuti
  • 0 0 1 * * - Il primo di ogni mese
  • 0 6,18 * * * - Due volte al giorno (06:00 e 18:00)

Come utilizzare Generatore Workflow GitHub Actions

1. Scegli un template di partenza

Seleziona Pipeline CI/CD, Solo Test, Build & Push Docker, Deploy o Release: imposta automaticamente trigger e step tipici per quello scenario.

2. Configura trigger, step e linguaggio

Attiva i trigger (push, pull request, schedule cron, dispatch manuale), aggiungi step preset per Node.js/Java/Python/Go oppure step custom (action o comando shell).

3. Aggiungi matrix, env/secrets e artifact (opzionali)

Abilita la matrix strategy per testare su piu' OS/versioni, definisci variabili d'ambiente (marcandole come secrets se sensibili) e configura upload/download di artifact.

4. Copia o scarica il file YAML

Il file YAML si aggiorna live man mano che modifichi la configurazione. Copialo negli appunti o scaricalo pronto per essere salvato in .github/workflows/.

Suggerimenti

  • Usa actions/checkout@v4 e actions/setup-* alle versioni piu' recenti indicate dal tool: sono gia' preconfigurate nei preset.
  • Attiva la matrix strategy solo quando serve testare piu' combinazioni: aumenta il consumo di minuti CI in proporzione al numero di combinazioni.
  • Consulta il blocco "Variabili di Contesto" in fondo alla pagina per i riferimenti ${{ github.sha }}, ${{ secrets.NAME }} e simili da usare negli step custom.

Domande frequenti

Dove va salvato il file YAML generato?

Nella cartella .github/workflows/ del repository, con estensione .yml (es. .github/workflows/ci.yml). GitHub Actions rileva automaticamente ogni file in quella cartella ed esegue il workflow in base ai trigger configurati.

Come gestisco i secrets (es. token Docker Hub) senza esporli nel workflow?

Marca la variabile come "secret" nella sezione Env e Secrets: il tool genera automaticamente il riferimento ${{ secrets.NOME_VARIABILE }} invece del valore in chiaro. Il valore reale del secret va poi configurato su GitHub in Settings > Secrets and variables > Actions, mai committato nel repository.

A cosa serve la matrix strategy?

Permette di eseguire lo stesso job su piu' combinazioni di sistema operativo e/o versione del linguaggio (es. Node 18/20/22 su Ubuntu e Windows) in parallelo, cosi' da verificare la compatibilita' senza duplicare manualmente il workflow.

Il tool valida che il YAML generato sia sintatticamente corretto per GitHub Actions?

Il generatore produce YAML sintatticamente valido seguendo la struttura ufficiale (on/jobs/steps) e gestisce l'escaping delle stringhe, ma non esegue una validazione semantica completa contro lo schema GitHub Actions: verifica sempre il workflow con un push di test o con l'editor Actions integrato di GitHub.

Posso personalizzare uno step generato dal preset di linguaggio?

Si', ogni step preset (es. "npm ci", "mvn test") resta modificabile: puoi cambiarne nome, comando o parametri "with" dopo averlo aggiunto, oppure aggiungere step custom di tipo action o run per esigenze non coperte dal preset.