La Continuous Integration (CI) è una pratica fondamentale nello sviluppo software moderno.
Vuoi scoprire come automatizzare i controlli sul tuo codice per fare in modo che, ogni volta che uno sviluppatore apre una Pull Request, vengano eseguiti automaticamente gli unit test e la build?
In questo articolo (e nel video tutorial dedicato) vedremo passo dopo passo come implementare la CI su GitHub utilizzando un progetto Node.js con Vite e Vitest.
Indice
Perché implementare la Continuous Integration in un progetto Node.js
Nel ciclo di vita di un’applicazione web, l’inserimento accidentale di bug o regressioni è un rischio costante. L’obiettivo principale della Continuous Integration è intercettare tempestivamente questi problemi. Configurando una pipeline automatica su GitHub, ci assicuriamo che le modifiche non solo compilino correttamente, ma superino tutti i test definiti.
Nel nostro caso pratico, utilizziamo uno stack basato su:
- Node.js come ambiente di esecuzione.
- Vite come tool di build per l’applicazione web.
- Vitest come framework per l’esecuzione degli unit test.
Configurare GitHub Actions per la CI
Il cuore della nostra automazione risiede nelle GitHub Actions. All’interno della repository, configuriamo un flusso di lavoro che si attiva (trigger) in corrispondenza delle Pull Request.
Per farlo, definiamo l’utilizzo della versione corretta di Node.js (tramite tool come FNM) e lanciamo gli script di installazione delle dipendenze e di esecuzione dei test in modalità non bloccante (es. npm run test:c), ideale per i controlli automatizzati.
Gestione degli Exit Code e blocco delle Pull Request
Come fa GitHub a sapere se la CI ha avuto successo? Semplice: si basa sull’exit code restituito dallo script:
- Exit code 0: indica che tutto è andato bene; i test sono passati e la build è riuscita. La Pull Request è pronta per essere mergiata.
- Exit code diverso da zero: indica un fallimento (ad esempio, a causa di una regressione introdotta nel codice). In questo scenario, i check falliscono e il merge viene bloccato, salvaguardando la stabilità del software.
Conclusioni
Anche se su progetti molto grandi con centinaia di unit test i tempi di esecuzione possono allungarsi leggermente, i benefici in termini di qualità e sicurezza del codice ripagano ampiamente la configurazione iniziale. Guarda il video in alto per seguire la configurazione passo dopo passo in live-coding!

