Introduzione a GitHub Actions

CI/CD per Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Che cos'è GitHub Actions?

  • GitHub Actions (GHA): piattaforma CI/CD per automatizzare le pipeline
  • Pipeline: sequenza di passaggi che rappresentano il flusso di lavoro e dati
CI/CD per Machine Learning

Che cos'è GitHub Actions?

Immagine di una catena di montaggio auto con operatori in varie fasi: montaggio motore, installazione ruote e verniciatura.

CI/CD per Machine Learning

Che cos'è GitHub Actions?

GitHub Actions crea una serie di azioni o passaggi definiti per il progetto software, come il checkout del repository, la build del codice, l'esecuzione dei test o il deploy dell'applicazione.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD per Machine Learning

Componenti GHA: Evento

  • Evento: attività nel repository che avvia un'esecuzione del workflow
    • Push
    • Pull Request
    • Apertura di un'issue
CI/CD per Machine Learning

Componenti GHA: Workflow

  • Workflow: processo automatizzato che esegue uno o più job
    • Definito in file YAML
    • Attivato automaticamente da un evento
      • Possibile anche l'avvio manuale
    • Si trova nella cartella .github/workflows del repository
    • Possono esserci più workflow
CI/CD per Machine Learning

Componenti GHA: Step e Action

  • Step: unità di lavoro singole
    • Eseguiti in ordine, dipendono dal precedente
    • Eseguiti sulla stessa macchina, i dati possono essere condivisi
    • Esempi di unità di lavoro
      • Compilare un'app, script shell
      • Action: applicazione specifica della piattaforma GHA
        • Es. checkout repo, commento su PR
CI/CD per Machine Learning

Componenti GHA: Job e Runner

  • Job: insieme di step
    • Ogni job è indipendente
    • Possibile esecuzione in parallelo
    • Eseguiti sulla macchina di calcolo chiamata runner
CI/CD per Machine Learning

Un semplice workflow GHA

Immagine di un evento push in un repository che avvia un workflow con un singolo job su un runner Ubuntu Linux. Il job contiene due step: checkout del repo ed esecuzione di codice Python.

  • Evento: Push
  • Job: eseguito su runner Ubuntu, con due step
    • Action: Checkout Repo
    • Esegui codice Python
CI/CD per Machine Learning

Mettiamo tutto insieme

Immagine dei tipici componenti di un workflow GitHub Actions con job in parallelo e step in sequenza.

CI/CD per Machine Learning

Esercitiamoci!

CI/CD per Machine Learning

Preparing Video For Download...