Grazie all’in­te­gra­zio­ne continua, in inglese Con­ti­nuous In­te­gra­tion e ab­bre­via­ta in CI, gli svi­lup­pa­to­ri di software possono aggirare il problema della fase di in­te­gra­zio­ne finale, che spesso risulta pro­ble­ma­ti­ca e di­spen­dio­sa in termini di tempo. Invece di unire tutti gli elementi singoli alla fine, con la CI le modifiche vengono integrate di­ret­ta­men­te nel codice sorgente. Affinché la CI rap­pre­sen­ti un vero vantaggio e non si trasformi in ostacolo, è fon­da­men­ta­le adottare un approccio di­sci­pli­na­to e processi ef­fi­cien­ti. Software svi­lup­pa­ti ap­po­si­ta­men­te possono fa­ci­li­ta­re l’intero processo.

Consiglio

Se non siete ancora convinti che l’in­te­gra­zio­ne continua sia la soluzione migliore per voi e il vostro team, potete trovare tutte le in­for­ma­zio­ni prin­ci­pa­li nonché un confronto tra vantaggi e svantaggi nel nostro articolo ap­pro­fon­di­to sulla Con­ti­nuous In­te­gra­tion.

In­di­pen­den­ti o in com­bi­na­zio­ne con altre ap­pli­ca­zio­ni diffuse, gli strumenti per la CI offrono supporto nella creazione di re­po­si­to­ry, nel testing e building nonché nel controllo delle versioni e ov­via­men­te nella stessa in­te­gra­zio­ne continua.

8 strumenti popolari di CI

La scelta di strumenti di Con­ti­nuous In­te­gra­tion su Internet è molto ampia. L’obiettivo di ciascuno di questi strumenti è sup­por­ta­re gli svi­lup­pa­to­ri nell’adozione dell’in­te­gra­zio­ne continua, anche se possono cambiare la modalità e le ca­rat­te­ri­sti­che spe­ci­fi­che. Gli strumenti di CI, tuttavia, non si di­stin­guo­no uni­ca­men­te per le fun­zio­na­li­tà che offrono, ma pre­sen­ta­no notevoli dif­fe­ren­ze anche in termini di prezzo e licenza. Anche se molti dei software sono open source e dunque gratuiti, alcuni pro­dut­to­ri offrono strumenti a pagamento. Di seguito vi forniamo una pa­no­ra­mi­ca dei programmi più ap­prez­za­ti e vi pre­sen­tia­mo le loro prin­ci­pa­li ca­rat­te­ri­sti­che e fun­zio­na­li­tà.

Jenkins

Immagine: Screenshot della homepage di Jenkins
Screen­shot della homepage di Jenkins

Il software Jenkins è pro­ba­bil­men­te uno degli strumenti di Con­ti­nuous In­te­gra­tion più co­no­sciu­ti sul mercato. Questo software è nato nel 2005 (allora con il nome Hudson) e continua a essere svi­lup­pa­to. Il programma scritto in Java offre mol­te­pli­ci funzioni e in­ter­fac­ce che non possono essere uti­liz­za­te soltanto per la CI, ma anche per la Con­ti­nuous Delivery e il Con­ti­nuous De­ploy­ment.

  • pro­gram­ma­to in Java
  • funziona in un EJB Container
  • più di 1000 plug-in
  • supporta anche la Con­ti­nuous Delivery e il Con­ti­nuous De­ploy­ment
  • può essere combinato con mol­te­pli­ci soluzioni di gestione di versioni
  • controllo tramite GUI (basato su web), REST API o comandi in riga di comando
  • pos­si­bi­li­tà di cloud hosting
  • gratuito
  • open source (licenza MIT)

Travis CI

Immagine: Screenshot della homepage della versione gratuita di Travis CI
Screen­shot della homepage della versione gratuita di Travis CI

Chi lavora con GitHub adorerà si­cu­ra­men­te Travis CI, dato che è per­fet­ta­men­te com­pa­ti­bi­le con la popolare soluzione per la gestione delle versioni. Il software può essere fa­cil­men­te con­fi­gu­ra­to tramite un file YAML che va salvato nella root del progetto di sviluppo. GitHub informa Travis CI su ogni modifica attuata sul re­po­si­to­ry e ga­ran­ti­sce il costante ag­gior­na­men­to del progetto.

  • pro­gram­ma­to in Ruby
  • in­di­pen­den­te dalle piat­ta­for­me
  • com­pa­ti­bi­le con GitHub
  • con­fi­gu­ra­zio­ne mediante file YAML
  • gratuito per progetti open source
  • costo per progetti com­mer­cia­li compreso tra 69 $ e 489 $ al mese
  • open source (licenza MIT)

Bamboo

Immagine: Screenshot della homepage dello strumento CI Bamboo
Screen­shot della homepage dello strumento CI Bamboo

L’azienda Atlassian, che adesso offre anche il servizio di hosting di file Bitbucket, ha lanciato lo strumento CI Bamboo nel 2007. Bamboo supporta gli svi­lup­pa­to­ri non solo nell’in­te­gra­zio­ne, ma offre anche funzioni per il De­ploy­ment e la gestione delle release. Questo strumento lavora mediante una piat­ta­for­ma web molto semplice.

  • pro­gram­ma­to in Java
  • in­di­pen­den­te dalle piat­ta­for­me
  • in­te­gra­zio­ne semplice di altri prodotti Atlassian
  • ampia scelta di add-on
  • pos­si­bi­li­tà di eseguire più test con­tem­po­ra­nea­men­te
  • co­mu­ni­ca­zio­ne tramite piat­ta­for­ma web e REST API
  • gratuito per progetti open source, or­ga­niz­za­zio­ni no profit e classi sco­la­sti­che
  • al­tri­men­ti costo una tantum tra 10 $ e 110.000 $, a seconda del numero di server uti­liz­za­ti

GitLab CI

Immagine: Screenshot della pagina secondaria dello strumento di Continuous Integration di GitLab
Screen­shot della pagina se­con­da­ria dello strumento di Con­ti­nuous In­te­gra­tion di GitLab

GitLab CI è parte in­te­gran­te della soluzione di gestione delle versioni GitLab. Oltre all’in­te­gra­zio­ne continua, GitLab supporta anche il Con­ti­nuous De­ploy­ment e la Con­ti­nuous Delivery. Come nel caso di Travis CI, anche per GitLab CI la con­fi­gu­ra­zio­ne avviene mediante un file YAML. Anche per altri aspetti, l’utilizzo del software è in confronto molto semplice.

  • parte in­te­gran­te di GitLab
  • pro­gram­ma­to in Ruby e Go
  • con­fi­gu­ra­zio­ne mediante file YAML
  • supporta anche la Con­ti­nuous Delivery e il Con­ti­nuous De­ploy­ment
  • Open Core
  • pos­si­bi­li­tà di self hosting e cloud hosting
  • la versione gratuita dispone solo di alcune fun­zio­na­li­tà
  • costo per altre versioni compreso tra 4 $ e 99 $ al mese

CircleCI

b2l4zTS8lPg.jpg Per vi­sua­liz­za­re questo video, sono necessari i cookie di terze parti. Puoi accedere e mo­di­fi­ca­re le im­po­sta­zio­ni dei cookie qui.

Lo strumento di in­te­gra­zio­ne continua CircleCI è com­pa­ti­bi­le sia con GitHub e Bitbucket. Per il testing vengono uti­liz­za­ti container o una macchina virtuale. CircleCI punta so­prat­tut­to sulla sem­pli­ci­tà e uni­for­mi­tà dei processi di sviluppo. Per questo offre la pos­si­bi­li­tà di mettere au­to­ma­ti­ca­men­te a di­spo­si­zio­ne build corretti per altri ambienti.

  • con­fi­gu­ra­zio­ne mediante file YAML
  • supporta anche il Con­ti­nuous De­ploy­ment
  • pos­si­bi­li­tà di self hosting e cloud hosting
  • com­pa­ti­bi­le con container Docker, Linux VM e MacOS VM
  • gratuito per container
  • al­tri­men­ti a un costo compreso tra 50 $ e 3150 $ al mese

Crui­se­Con­trol

Immagine: Screenshot della homepage di CruiseControl
Screen­shot della homepage di Crui­se­Con­trol

Lo strumento Crui­se­Con­trol è una delle ap­pli­ca­zio­ni per l’in­te­gra­zio­ne continua più datate. Infatti è stato lanciato sul mercato già nel 2001 e il suo sviluppo non si è mai in­ter­rot­to, anche grazie a Martin Fowler, un pioniere nel settore della Con­ti­nuous In­te­gra­tion. Oltre a una dashboard molto chiara, gli svi­lup­pa­to­ri possono sfruttare numerosi plug-in per fa­ci­li­ta­re il loro lavoro.

  • pro­gram­ma­to in Java
  • in­di­pen­den­te dalle piat­ta­for­me
  • dashboard basata sul web
  • versioni per Ruby (Crui­se­Con­trol.rb) e .NET (Crui­se­Con­trol.NET)
  • open source (licenza BSD)
  • gratuito

Codeship

Immagine: Screenshot della homepage di Codeship
Screen­shot della homepage di Codeship

Lo strumento di CI Codeship ap­par­tie­ne ora a CloudBee, come Jenkins. Il programma è di­spo­ni­bi­le in due versioni: una versione base, ca­rat­te­riz­za­ta da un’in­ter­fac­cia web molto intuitiva, e una versione pro­fes­sio­na­le che viene con­fi­gu­ra­ta mediante file nel re­po­si­to­ry. Chi lavora con container Docker deve scegliere la versione pro­fes­sio­na­le.

  • in­ter­fac­cia web nella versione base
  • file di con­fi­gu­ra­zio­ne nel re­po­si­to­ry nella versione pro­fes­sio­na­le
  • supporto di Docker nella versione pro­fes­sio­na­le
  • gratuito per 100 build al mese con una pipeline di test
  • costo compreso tra 75 $ e 1.500 $ al mese

TeamCity

Immagine: Screenshot della homepage di TeamCity
Screen­shot della homepage di TeamCity

Il software TeamCity è par­ti­co­lar­men­te in­te­res­san­te per i suoi gated check-in, che con­sen­to­no a TeamCity di testare le modifiche del codice prima ancora che vengano integrate nella mainline. Solo quando il codice sorgente sarà privo di difetti, sarà reso di­spo­ni­bi­le anche al resto del team. TeamCity esegue i test au­to­no­ma­men­te in secondo piano in modo da non in­ter­rom­pe­re il lavoro dello svi­lup­pa­to­re.

  • pro­gram­ma­to in Java
  • in­di­pen­den­te dalle piat­ta­for­me
  • Gated check-in
  • gratuito per 100 build con 3 Build Agent
  • costo una tantum, compreso tra 299 € e 21.999 €
  • 50% di sconto per start-up e gratuito per progetti open source

Tabella rias­sun­ti­va: pa­no­ra­mi­ca degli strumenti di Con­ti­nuous In­te­gra­tion

Tutti gli strumenti di CI hanno vantaggi e svantaggi diversi. Grazie alla seguente tabella rias­sun­ti­va potrete capire im­me­dia­ta­men­te quali programmi fanno al caso vostro. Potrete, ad esempio, vedere subito se la soluzione supporta anche la Con­ti­nuous Delivery o se include il cloud hosting.

Jenkins ✓ ✓ MIT - ✓ Molti plug-in
Travis CI ✗ ✓ MIT 69–489 $ al mese ✓ Col­le­ga­men­to diretto a GitHub
Bamboo ✓ ✓ Pro­prie­ta­rio 10–110.000 $ una tantum ✓  
GitLab CI ✓ ✓ MIT/EE 4–99 $ al mese ✓ Col­le­ga­men­to diretto ad altri prodotti Atlassian
Circle CI ✓ ✓ Pro­prie­ta­rio 50–3.150 $ al mese ✓ Facile da usare
Crui­se­Con­trol ✗ ✗ BSD - ✓ Com­ple­ta­men­te gratuito
Codeship ✓ ✓ Pro­prie­ta­rio 75–1.500 $ al mese ✓ Versione Pro e Base
TeamCity ✓ ✗ Pro­prie­ta­rio 299€ –21.999 una tantum ✓ Gated check-in
Vai al menu prin­ci­pa­le