GitHub Actions: nozioni di base
La piattaforma GitHub Actions di Continuous Integration vi consente di automatizzare varie azioni. Il vantaggio è quello di non dover più occuparsi manualmente di attività ripetitive e di poter dedicare più tempo al progetto vero e proprio.
Cos’è GitHub Actions?
GitHub Actions è la piattaforma di GitHub per la Continuous Integration e la Continuous Delivery. Consente agli utenti di automatizzare i repository e di creare i cosiddetti flussi di lavoro GitHub. Ad esempio, la compilazione di nuovo codice o l’esecuzione di test di unità relativi al progetto avviene per impostazione predefinita quando il codice viene aggiornato nel repository GitHub.
Come funziona GitHub Actions?
GitHub Actions si basa sui vostri flussi di lavoro GitHub. All’interno dei flussi di lavoro, è possibile reagire a vari eventi, come le richieste push, e attivare le azioni corrispondenti in base agli eventi. Il flusso di lavoro stesso consiste in diversi jobs (lavori), ognuno dei quali viene eseguito in una macchina virtuale o all’interno di un contenitore. GitHub supporta le macchine virtuali Linux, Windows e macOS.
Se volete distribuire direttamente i vostri progetti e siti web, la soluzione ideale è Deploy Now di IONOS. Personalizzate così i flussi di lavoro automatici di GitHub in qualsiasi momento.
I componenti più importanti di GitHub Actions
Flussi di lavoro
Un flusso di lavoro GitHub, conosciuto anche come “workflow”, è l’elemento centrale di GitHub Actions. Con un questo elemento, che in realtà non è altro che un file YAML, specificate le azioni da intraprendere quando si verificano determinati eventi. Ma non sono solo gli eventi a poter innescare i flussi di lavoro: è anche possibile assicurarsi manualmente che il flusso di lavoro venga eseguito o persino impostare date fisse utilizzando la pianificazione. Quindi ogni flusso di lavoro di GitHub avvia uno o più lavori (jobs). Non è necessario limitarsi a un solo flusso di lavoro per repository, ma è possibile definire un numero qualsiasi di flussi di lavoro per il proprio repository GitHub.
Eventi
Come già menzionato, i flussi di lavoro sono spesso attivati da eventi, conosciuti anche come “events”. Si tratta di un’azione specifica nel repository GitHub che attiva l’esecuzione di un flusso di lavoro. Un esempio comune di evento GitHub è una richiesta pull. Tuttavia, sono innumerevoli gli eventi a cui potete ricorrere. Un elenco completo è disponibile nella documentazione di GitHub.
Azioni
GitHub Actions dà il nome alle cosiddette azioni, centrali per la piattaforma. Un’azione è un’applicazione GitHub individuale che esegue compiti complessi frequenti. Possono essere utilizzati in modo simile alle funzioni all’interno dei file del flusso di lavoro per evitare codice ripetitivo. Se non volete scrivere le vostre azioni GitHub, potete trovare una serie di azioni predefinite nel relativo Marketplace.
Passi
I passi, conosciuti anche come “steps”, sono componenti individuali dei lavori. Sono costituiti da script di shell che vengono eseguiti o da un’azione che viene avviata. Vengono elaborati nell’ordine in cui sono stati definiti. Inoltre, i diversi passi si basano l’uno sull’altro e possono scambiare dati tra loro.
Lavori
Un lavoro, chiamato anche “job”, non è altro che una sequenza di passi eseguiti su un cosiddetto runner. Sebbene i lavori siano indipendenti di per sé, avete la possibilità di creare manualmente delle dipendenze tra i singoli lavori. In questo modo un lavoro deve attendere tutti i lavori da cui dipende. Questo interrompe la normale esecuzione parallela di diversi lavori.
Runner
Un runner è il server su cui vengono eseguiti i flussi di lavoro. Ogni runner può eseguire esattamente un lavoro alla volta. Fondamentalmente sono quindi macchine virtuali. I sistemi operativi supportati da GitHub sono Linux Ubuntu, Windows e macOS. Se avete bisogno di un sistema operativo diverso per testare i vostri progetti, potete ovviamente ospitare i vostri runner.
Vantaggi di GitHub Actions
Oltre al fatto che potete integrare perfettamente GitHub Actions nel vostro lavoro con GitHub, il servizio di Continuous Integration offre una serie di altri vantaggi. Ad esempio, è possibile utilizzare modelli predefiniti e non è necessario utilizzare per forza i propri flussi di lavoro. Inoltre, il servizio GitHub è completamente gratuito per i vostri repository pubblici. Per i repository privati, GitHub mette a disposizione 2.000 minuti al mese per i flussi di lavoro ospitati.