Estratto del documento

Introduzione alla continuous integration (CI)

L'integrazione continua è una pratica che si applica in contesti in cui lo sviluppo del software avviene attraverso un sistema di controllo versione. Consiste nell’allineamento frequente degli ambienti di lavoro degli sviluppatori verso l’ambiente di lavoro condiviso (mainline). Infatti, una delle politiche principali della CI è “building software at every change”. Questo concetto è stato adottato come contromisura preventiva per il problema dell’“integration hell” (difficoltà dell’integrazione di porzioni di software sviluppati in modo indipendente su lunghi periodi di tempo e che potrebbero essere molto divergenti). Quindi, la continuous integration consiste nell’integrare spesso, limitando le possibilità che si verifichi l’inferno dell’integrazione.

Molto spesso si pensa che con il termine build ci si riferisca solo al processo di compilazione, ma non è così. Infatti, il processo di build comprende: compilazione, testing, inspection, deployment e molto altro.

I componenti del processo di build

  • Version control repository
  • CI Server: fa partire il processo di build quando una “change” (cambiamento) viene apportato “commit” nel repository
  • Dashboard
  • Build Scripts: script usati per effettuare la compilazione, il testing, il deployment e molto altro (Ant, Make, Maven, Gradle)
  • Feedback Mechanisms: utili ad informare gli sviluppatori circa l’esito del processo di build (email, messaggi)

La integration build machine

È quindi presente un integration build machine responsabile dell’integrazione del software, tipicamente questa macchina ospita il CI Server che preleva il sorgente dal “version control repository”.

Le attività svolte dalla integration build machine

  • Source code compilation: compilazione del software che non va sempre fatta, ad esempio PHP e Python non richiedono compilazione
  • Database integration: bisogna assicurarsi che il database si integri con la versione del software contenuta nel “version software repository”, si usano script DDL e DML
  • Testing: è una parte essenziale del processo di CI, vengono usati software come JUnit
  • Inspection: processo automatizzato che prevede l’analisi statica e dinamica volta a migliorare la qualità del codice prodotto (assicurarsi che una classe non sia costituita da più di 500 LOC, oppure che il codice sia opportunamente commentato), viene effettuata da tool come Checkstyle, FindBugs e PMD
  • Deployment
Anteprima
Vedrai una selezione di 3 pagine su 6
La continuos integration: i concetti di Docker e container Pag. 1 La continuos integration: i concetti di Docker e container Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
La continuos integration: i concetti di Docker e container Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher DID98 di informazioni apprese con la frequenza delle lezioni di Ingegneria del software e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi del Sannio o del prof Di Penta Massimiliano.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community