Integrazione continua
Integrazione continua: origine e compilazione
La prima fase del percorso CI/CD prevede lo sviluppo della maturità nell'integrazione continua. Assicurati che tutti gli sviluppatori eseguano regolarmente il commit del codice in un repository centrale (ad esempio uno ospitato in CodeCommit o GitHub) e che uniscano tutte le modifiche in un branch di rilascio dell'applicazione. Nessuno sviluppatore deve tenere il codice in isolamento. Se per un certo periodo di tempo è necessario un branch di funzioni, questo dovrebbe essere mantenuto aggiornato tramite il merge da upstream il più frequentemente possibile. I commit e i merge frequenti con le unità di lavoro complete sono due pratiche che il team dovrebbe svolgere al fine di sviluppare la disciplina e sono inoltre incoraggiate dal processo. Uno sviluppatore che unisce il codice nelle prime fasi del processo e con frequenza avrà probabilmente meno problemi di integrazione nelle fasi successive del processo.
Ti consigliamo inoltre di incoraggiare gli sviluppatori a creare il prima possibile unit test per le applicazioni e ad eseguirli prima di inviare il codice al repository centrale. Gli errori rilevati nelle prime fasi del processo di sviluppo del software sono i più economici e facili da correggere.
Quando il codice viene inviato a un branch in un repository del codice sorgente, un motore del flusso di lavoro che monitora quel branch invierà a uno strumento di compilazione un comando per la compilazione del codice e l'esecuzione degli unit test in un ambiente controllato. Il processo di compilazione deve essere delle dimensioni appropriate per la gestione di tutte le attività, incluse quelle di push e di test che potrebbero verificarsi durante la fase di commit, per l'invio di feedback rapidi. In questa fase possono avere luogo anche altri controlli di qualità, come la copertura degli unit test, il controllo dello stile e l'analisi statica. Infine, lo strumento di compilazione crea una o più build binarie e altri artefatti, come immagini, fogli di stile e documenti per l'applicazione.