C'è un problema fondamentale di Continuous Integration (CI) perfettamente rispecchiato nella tua domanda: le pratiche di CI sono difficili da implementare e difendere perché il software del server CI non è banale da configurare, né è banale far funzionare i tuoi progetti attraverso un server CI. Con questo, diventa difficile vedere realmente dov'è il vantaggio nell'abbracciare l'IC.
Prima di tutto, la CI riguarda l'intuizione e la qualità. Una buona IC ti avvicina al tuo progetto, ti dà un feedback adeguato su parametri di qualità, documentazione, conformità agli standard di codifica, ecc. Dovrebbe fornirti gli strumenti per visualizzare facilmente tutto questo e permetterti di riconoscere a colpo d'occhio e facilmente associare un insieme di modifiche con un'istantanea specifica di tutte queste metriche del progetto.
È non solo per eseguire i test unitari. Affatto! Il che mi porta alla qualità. CI abbraccia gli errori, non li evita o li butta via. Quello che fa è semplicemente fornire uno strumento per l'errore all'inizio, piuttosto che in seguito. Quindi non si commette realmente codice precedentemente testato su un server CI. Sebbene sia necessario eseguire il commit di codice pulito e non danneggiato, in realtà si utilizza il server CI per eseguire automaticamente un generatore di integrazione automaticamente tramite il codice e valutare se tutto è venuto fuori correttamente. Se è così, pulito! In caso contrario, nessun problema: le buone pratiche informatiche stabiliscono che la tua prossima priorità dovrebbe essere quella di correggere ciò che si è rotto. Che, in un buon server CI, dovrebbe essere facilmente segnalato per te.
Con l'aumentare delle dimensioni della 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 sottrarre tale onere ai membri del team. Quindi è necessario che tutti facciano il commit in anticipo (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 dell'impegno di alcuni sviluppatori, immediatamente diventa la sua responsabilità nel correggerlo e riportare immediatamente le build automatiche nello stato OK.
Quindi, a mio avviso, ogni singolo progetto trae vantaggio dall'essere continuamente integrato. Il fatto è che fino ad ora, a causa della complessità da capogiro di ogni singolo server CI che conosco, le persone hanno davvero respinto le pratiche di 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, sotto carico 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 consisteva nel semplificare l'installazione, la configurazione e l'uso e nel far sì che venissero trasmessi su quei parametri di qualità che praticamente tutti gli altri falliscono o sono insufficienti. Quindi, dopo questa lunga risposta arriva il mio spudorato plug di puntare il link GitHub per il progetto (che è gratuito e open-source, natch). Ha anche alcuni screenshot, apparentemente. :-) link
Spero di averti aiutato.
(NOTA: modificato dopo il commento di Bryan Oakley, sul fatto che avrei dovuto impiegare più tempo per costruire una risposta migliore. Penso anche che avesse ragione.)