C'è un problema fondamentale sull'integrazione continua (CI) che si rispecchia perfettamente nella tua domanda: le pratiche CI sono difficili da implementare e difendere perché il software del server CI non è banale da installare, né è banale mettere i tuoi progetti in esecuzione attraverso un CI server. Con questo, diventa difficile vedere davvero qual è il vantaggio nell'abbracciare CI.
Prima di tutto, CI si occupa di intuizione e qualità. Un buon CI ti avvicina al tuo progetto, ti dà un feedback adeguato su metriche di qualità, documentazione, conformità agli standard di codifica, ecc. Dovrebbe fornirti gli strumenti per visualizzare facilmente tutto questo e permetterti di riconoscere immediatamente e facilmente associare una serie di modifiche a un'istantanea specifica di tutte queste metriche del progetto.
Si tratta non solo di eseguire i test di unità. Affatto! Il che mi porta alla qualità. CI comprende errori, non li evita o li butta via. Quello che fa è semplicemente fornirti uno strumento per errori in anticipo, invece che in seguito. In questo modo non esegui davvero il commit di codice precedentemente testato su un server CI. Anche se dovresti sforzarti di commettere codice pulito e non rotto, in realtà usi il server CI per eseguire automaticamente un builder di integrazione automaticamente attraverso il tuo codice e farlo valutare se tutto è andato bene. Se è così, pulito! In caso contrario, nessun problema: le buone pratiche di CI affermano che la tua prossima priorità dovrebbe essere solo quella di riparare qualunque cosa si sia rotta. Che, in un buon server CI, dovrebbe essere facilmente indicato per te.
All'aumentare delle dimensioni di una squadra, l'integrazione del codice di tutti diventa naturalmente più difficile. Dovrebbe essere compito di un server CI centralizzato testare tutte le parti integrate e rimuovere tale onere dai membri del team. Quindi devi fare in modo che tutti si impegnino presto (e nel modo più pulito possibile) e quindi monitorino lo stato delle build (di solito sono coinvolte le notifiche). E ancora, se qualcosa si rompe a causa del commit di alcuni sviluppatori, diventa immediatamente sua responsabilità ripararlo e riportare immediatamente quei build automatici allo stato OK.
Quindi, secondo me, ogni singolo progetto trae vantaggio dall'essere continuamente integrato. Il fatto è che fino ad ora, a causa della complessità sbalorditiva di ogni singolo server CI che conosco, le persone hanno davvero respinto le pratiche CI su progetti più piccoli / più semplici. Perché, dai, le persone hanno cose migliori da fare che passare giorni a configurare un software brutto, eccessivamente complesso, poco efficiente e gonfio.
Ho avuto lo stesso identico problema, ed è quello che mi ha fatto sviluppare Cintient nel mio tempo libero da circa un anno fa. La mia premessa era di rendere semplice l'installazione, la configurazione e l'uso e di far sì che fornisse quelle metriche di qualità che praticamente tutti gli altri falliscono o perdono. Quindi, dopo questa lunga risposta arriva la mia spudorata presa di puntamento del collegamento GitHub per il progetto (che è gratuito e open-source, natch). Presenta anche alcuni screenshot, a quanto pare. :-) https://github.com/matamouros/cintient
Spero di averti aiutato.
(NOTA: modificato dopo il commento di Bryan Oakley, sul fatto che avrei dovuto dedicare più tempo a costruire una risposta migliore. Penso anche che avesse ragione.)