Nel mio caso (un in-house progettata/costruita/sistema CB supportato), si impegna a VCS nell'albero di mira da un dato di configurazione CB coda automaticamente un CB richiesta (più richieste in arrivo mentre un CB è in esecuzione vengono compresse in una, che verrà eseguita non appena l'attuale processo CB è terminato).
Ogni istanza CB risponde a una richiesta CB eseguendo le fasi di generazione e test configurate per eseguirle (distribuendole in parallelo a un "cloud" di server distribuiti condivisi da tutte le istruzioni CB), registrando i risultati di generazione e test e occasionalmente (non più spesso di una frequenza configurata) che lancia "test pesanti" (che può durare molto a lungo e NON bloccheranno le richieste CB in arrivo - i test pesanti vengono completamente disattivati, anche se i log lo rendono molto chiaro esattamente contro quale build hanno funzionato).
"sync to head" (che "head" sarebbe "trunk" in altri VCS ;-), per le dipendenze che non fanno parte dell'albero tracciato da un CB, può accadere ogni volta (questi sarebbero leggeri, build non critiche per la produzione o sperimentali) o solo su richieste di integrazione molto esplicite (che è l'altro estremo, per "rami di rilascio" per build/progetti che sono critici per la produzione) o con tolleranza intermedia.
Non l'apice della pratica dell'ingegneria di rilascio, penso, ma nella sua gamma di opzioni funziona bene per noi, per una varietà molto ampia di progetti di criticità molto diverse, dipendenza-pesantezza, & c ;-).
fonte
2009-07-20 06:42:46
Si prega di consultare: http://stackoverflow.com/questions/102902/what-is-a-good-ci-build -processo – Shog9
@ Shog9: La domanda a cui si fa riferimento discute di elementi a più alto livello (oserei dire * meta *?), mentre questa domanda richiede specifici dettagli di implementazione. Penso che siano abbastanza diversi da mantenere questo aperto. – Treb