0Pricing
DevOps Bootcamp · Lezione

Trigger ed eventi dei workflow

Esplori i diversi eventi che possono attivare i workflow di GitHub Actions, come push, pull request ed eventi pianificati.

Trigger ed eventi dei workflow è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Che cosa avvia un workflow?

I workflow in GitHub Actions non vengono eseguiti da soli. Hanno bisogno di un segnale di avvio! Questo segnale si chiama trigger.

I trigger sono eventi specifici che comunicano a GitHub Actions: "Ehi, è successo qualcosa! È ora di eseguire questo workflow." Capire i trigger è fondamentale per automatizzare efficacemente il processo di sviluppo.

La parola chiave 'on'

Nel file del workflow (un file .yml nella directory .github/workflows), definisce i trigger utilizzando la parola chiave on.

Questa sezione indica a GitHub Actions quando eseguire il workflow. Può specificare uno o più eventi.

name: My First Triggered Workflow

on:
  push: # This workflow will run on every push event

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Run a simple command
        run: echo "Workflow triggered!"

Reagire ai push del codice

L’evento push è uno dei trigger più comuni. Si attiva ogni volta che il codice viene inviato al repository, sia in caso di nuovo commit sia di merge.

Per impostazione predefinita, un trigger push viene eseguito per tutti i branch.

on: push

jobs:
  greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Say Hello
        run: echo "Code was pushed!"

Push mirati

Può perfezionare il trigger push in modo che venga eseguito solo per branch specifici o quando vengono modificate determinate percorsi di file. Questo aiuta a ottimizzare i workflow.

  • branches: esegue il workflow solo quando si verificano push su nomi di branch specifici.
  • paths: esegue il workflow solo quando vengono modificati file all’interno delle directory specificate.
on:
  push:
    branches:
      - main
      - 'feature/*' # Glob pattern for feature branches
    paths:
      - 'src/**' # Only if changes in src/ directory

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Push to relevant branch/path detected!"

Automatizzare i controlli delle pull request

L’evento pull_request si attiva quando una pull request viene aperta, sincronizzata (con nuovi commit inviati al branch della PR) o riaperta.

È ideale per eseguire controlli automatici come test, linting o code review prima di integrare le modifiche nella codebase principale.

on: pull_request

jobs:
  pr_check:
    runs-on: ubuntu-latest
    steps:
      - name: PR opened/updated
        run: echo "A pull request was opened or updated!"

Azioni specifiche delle PR

Può perfezionare ulteriormente il trigger pull_request specificando types. In questo modo il workflow reagisce solo ad azioni specifiche relative a una pull request.

  • opened: quando viene creata una nuova pull request.
  • synchronize: quando vengono inviati nuovi commit al branch della PR.
  • reopened: quando una pull request chiusa viene riaperta.
on:
  pull_request:
    types: [opened, synchronize, reopened] # Run only on these PR actions

jobs:
  pr_review:
    runs-on: ubuntu-latest
    steps:
      - run: echo "PR action: ${{ github.event.action }}"

Trigger basati sull'orario

L'evento schedule consente di eseguire workflow a orari specifici usando la sintassi cron. È perfetto per report giornalieri, attività di pulizia o controlli periodici.

La sintassi cron usa cinque asterischi che rappresentano: minute hour day-of-month month day-of-week.

on:
  schedule:
    - cron: '0 0 * * *' # Run daily at midnight UTC
    - cron: '0 12 * * 1-5' # Run at 12 PM UTC, Mon-Fri

jobs:
  scheduled_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Scheduled workflow running!"

Esecuzione manuale dei workflow

A volte è necessario eseguire manualmente un workflow, ad esempio per un deployment o un'attività di manutenzione specifica. L'evento workflow_dispatch lo consente.

Quando questo trigger è presente, nell'interfaccia di GitHub viene visualizzato un pulsante "Run workflow" per quel workflow, che consente di attivarlo su richiesta.

on: workflow_dispatch

jobs:
  manual_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "This workflow was triggered manually!"

Oltre le basi

Sebbene push, pull_request, schedule e workflow_dispatch siano gli eventi più comuni, GitHub Actions offre molti altri trigger basati su eventi.

  • workflow_call: per creare workflow riutilizzabili.
  • repository_dispatch: per attivare workflow da sistemi esterni tramite una chiamata API.
  • Molti altri per eventi specifici di GitHub, ad esempio issues, release e fork.

Sfida sui trigger

È necessario configurare un workflow che generi automaticamente un report settimanale ogni venerdì alle 17:00 UTC, indipendentemente da eventuali modifiche al codice. Qual è l'evento trigger più appropriato per questa attività?

Riepilogo dei trigger

Ottimo lavoro nell'esplorazione dei trigger di GitHub Actions! Ha imparato che i workflow vengono avviati da vari eventi:

  • push: per le modifiche inviate al repository.
  • pull_request: per le azioni relative alle pull request.
  • schedule: per le attività ricorrenti basate sull'orario tramite cron.
  • workflow_dispatch: per l'esecuzione manuale dall'interfaccia o dall'API.

Scegliere il trigger corretto è il primo passo per creare pipeline CI/CD efficaci ed efficienti!

Domande Frequenti

La lezione «Trigger ed eventi dei workflow» è gratuita?

Sì — il testo completo di «Trigger ed eventi dei workflow» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Trigger ed eventi dei workflow»?

Esplori i diversi eventi che possono attivare i workflow di GitHub Actions, come push, pull request ed eventi pianificati. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Trigger ed eventi dei workflow»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Trigger ed eventi dei workflow
  2. Eseguire test con GitHub Actions
  3. Linting e controlli della qualità del codice
  4. Memorizzare le dipendenze nella cache per build più rapide
← Torna a DevOps Bootcamp