Integrazione continua - Caratteristiche
Di seguito sono riportate alcune delle principali caratteristiche o pratiche per l'integrazione continua.
Maintain a single source repository- Tutto il codice sorgente è mantenuto in un unico repository. Ciò evita che il codice sorgente venga disperso in più posizioni. Strumenti comeSubversion and Git sono gli strumenti più popolari per mantenere il codice sorgente.
Automate the build- La creazione del software deve essere eseguita in modo tale da poter essere automatizzata. Se sono necessari più passaggi, lo strumento di compilazione deve essere in grado di farlo. Per .Net, MSBuild è lo strumento di compilazione predefinito e per le applicazioni basate su Java sono disponibili strumenti comeMaven and Grunt.
Make your build self-testing- La build dovrebbe essere testabile. Subito dopo la compilazione, è necessario eseguire i casi di test per garantire che sia possibile eseguire il test per le varie funzionalità del software.
Every commit should build on an integration machine- La macchina di integrazione è il server di build e dovrebbe essere garantito che la build venga eseguita su questa macchina. Ciò significa che tutti i componenti dipendenti dovrebbero esistere sul server Continuous Integration.
Keep the build fast- La costruzione dovrebbe avvenire in pochi minuti. La compilazione non dovrebbe richiedere ore perché ciò significhi che i passaggi di compilazione non sono configurati correttamente.
Test in a clone of the production environment- L'ambiente di costruzione dovrebbe essere vicino per natura all'ambiente di produzione. Se sono presenti notevoli differenze tra questi ambienti, è possibile che la compilazione non riesca in produzione anche se passa al server di compilazione.
Everyone can see what is happening - L'intero processo di creazione, test e distribuzione dovrebbe essere visibile a tutti.
Automate deployment- L'integrazione continua porta alla distribuzione continua. È assolutamente necessario garantire che la build sia facile da distribuire in un ambiente di staging o di produzione.