Usare l'integrazione continua

L'integrazione continua (CI) è il processo di compilazione e test automatico del codice ogni volta che un membro del team esegue il commit delle modifiche del codice al controllo della versione. Un commit del codice nel ramo principale o trunk di un repository condiviso attiva il sistema di compilazione automatizzato per compilare, testare e convalidare il ramo completo. Ci incoraggia gli sviluppatori a condividere il codice e gli unit test unendo le modifiche nel repository di controllo della versione condivisa ogni volta che completano un'attività.

Gli sviluppatori di software spesso lavorano in isolamento e quindi devono integrare le modifiche con il resto della codebase di un team. I giorni o le settimane di attesa per integrare il codice possono creare molti conflitti di merge, risolvere bug difficili da correggere, strategie di codice divergenti e sforzi duplicati. L'integrazione continua evita questi problemi perché richiede che il codice del team di sviluppo venga unito continuamente al ramo di controllo della versione condiviso.

CI mantiene aggiornato il ramo principale. Gli sviluppatori possono usare sistemi di controllo della versione moderni come Git per isolare il proprio lavoro in rami di funzionalità di breve durata. Al termine della funzionalità, lo sviluppatore invia una richiesta pull dal ramo di funzionalità al ramo principale. Dopo l'approvazione della richiesta pull, le modifiche vengono unite nel ramo principale e il ramo di funzionalità può essere eliminato.

I team di sviluppo ripetono questo processo per ogni elemento di lavoro. I team possono stabilire criteri di succursale per garantire che il ramo principale mantenga i criteri di qualità desiderati.

Le definizioni di compilazione specificano che ogni commit nel ramo principale attiva il processo di compilazione e test automatizzato. I test automatizzati verificano che ogni compilazione mantenga una qualità coerente. L'integrazione continua rileva i bug prima del ciclo di sviluppo, rendendoli meno costosi da correggere. 

L'integrazione continua è una funzionalità standard nelle piattaforme DevOps moderne. Gli utenti di GitHub possono implementare l'integrazione continua tramite GitHub Actions. Gli utenti di Azure DevOps possono usare Azure Pipelines.