Nozioni di base sull'integrazione continua

L'integrazione continua (CI) è una pratica di sviluppo software in cui gli sviluppatori spesso uniscono le modifiche al codice in un repository centrale, dopodiché vengono eseguiti test e build automatizzati.

Puoi configurare un sistema CI di base per impedire nuove modifiche che causerebbero un errore nella build dopo l'unione. Puoi programmare un sistema CI più avanzato per testare automaticamente l'app e assicurarti che funzioni come previsto in ambienti diversi, ad esempio livelli API, dimensioni dello schermo e piattaforme.

Un diagramma che mostra come più sviluppatori richiedono modifiche al codice e come vengono controllate dal sistema CI prima di essere unite nel repository di codice principale.
Figura 1. Un sistema CI mantiene un repository di codice integro eseguendo controlli prima dell'unione.

Questo documento illustra strategie comuni usate dagli sviluppatori per configurare sistemi CI efficaci per i progetti Android. Queste linee guida sono generiche e si applicano alla maggior parte delle soluzioni.

Esempio tipico

Un tipico sistema CI segue un flusso di lavoro o una pipeline, che potrebbe essere il seguente:

  1. Il sistema CI rileva una modifica nel codice, in genere quando uno sviluppatore crea una richiesta di pull, chiamata anche "elenco delle modifiche" o "richiesta di unione".
  2. Esegue il provisioning e l'inizializzazione di un server per l'esecuzione del flusso di lavoro.
  3. Recupera il codice e strumenti come l'SDK Android o le immagini dell'emulatore, se necessario.
  4. Crea il progetto eseguendo un determinato comando, ad esempio ./gradlew build.
  5. Esegue i test locali eseguendo un determinato comando, ad esempio eseguendo ./gradlew test.
  6. Avvia gli emulatori ed esegue i test strumentati.
  7. Carica elementi come i risultati dei test e gli APK.
Diagramma che mostra un flusso di lavoro CI di base
Figura 2. Un flusso di lavoro CI di base

Vantaggi dell'integrazione continua

I vantaggi dell'integrazione continua includono:

  • Migliore qualità del software: la CI può aiutare a migliorare la qualità del software identificando e risolvendo i problemi nella fase iniziale. Questo può aiutare a ridurre il numero di bug nelle versioni del software e a migliorare l'esperienza utente complessiva.
  • Rischio ridotto di build non funzionanti: quando automatizzi il processo di compilazione con la CI, puoi evitare meglio le build non funzionanti risolvendo i problemi nelle prime fasi del processo.
  • Maggiore fiducia nelle release: la CI può aiutare a garantire che ogni release sia stabile e pronta per la produzione. Eseguendo test automatici, la CI può identificare potenziali problemi prima di rilasciarli al pubblico.
  • Comunicazione e collaborazione migliorate: mettendo a disposizione degli sviluppatori un punto centrale per condividere il codice e i risultati dei test, la CI può aiutare a semplificare la collaborazione e il monitoraggio dei progressi per gli sviluppatori e gli altri membri del team.
  • Maggiore produttività: la CI può aiutare ad aumentare la produttività degli sviluppatori automatizzando le attività che altrimenti sarebbero dispendiose in termini di tempo e soggette a errori.

Continua a leggere

Per saperne di più su come utilizzare l'integrazione costante per migliorare lo sviluppo della tua app, consulta le seguenti pagine: