W moim przypadku (w-domu zaprojektowanego/wybudowanych/obsługiwany system CB), zobowiązuje się do VCS w drzewie docelowym przez daną CB config automatycznie w kolejce do CB Żądanie (wiele żądań przychodzących podczas działania CB zostaje zwinięte w jeden, który zostanie uruchomiony zaraz po zakończeniu bieżącego procesu CB).
Każda instancja CB odpowiada na żądanie CB wykonując kroki budowania i testowania, do których jest skonfigurowana (rozdzielając je równolegle do "chmury" rozproszonych serwerów współdzielonych przez wszystkie instancje CB), rejestrując wyniki kompilacji i testów i od czasu do czasu (nie częściej niż skonfigurowana częstotliwość) uruchamianie "ciężkich testów" (które mogą trwać bardzo długo i NIE będą blokować nadchodzących żądań CB - ciężkie testy są całkowicie rozwidlone, chociaż dzienniki sprawiają, że dokładnie jest dokładnie przeciw której budowali oni).
"Synchronizuj z głową" (ta "głowa" byłaby "pnia" w innych VCS ;-), dla zależności, które nie są częścią drzewa śledzonego przez CB, może się zdarzyć za każdym razem (byłyby one lekkie, niezwiązane z produkcją lub eksperymentalne kompilacje) lub tylko w przypadku bardzo wyraźnych żądań integracji (to jest druga skrajność, w przypadku "gałęzi wydań" dla projektów/projektów, które SĄ krytyczne pod względem produkcji) lub z pośrednią tolerancją.
To chyba nie wierzchołek praktyki inżynierskiej, ale w zakresie jego możliwości sprawdza się dobrze dla nas, dla naprawdę szerokiej gamy projektów o bardzo zróżnicowanej krytyczności, ciężaru zależności i c ;-).
proszę zobaczyć: http://stackoverflow.com/questions/102902/what-is-a-good-ci-build -process – Shog9
@ Shog9: Pytanie, na które się powołujesz, omawia CI na bardziej abstrakcyjnym poziomie (odważę się powiedzieć * meta *?), podczas gdy to pytanie wymaga konkretnych szczegółów implementacji. Sądzę, że różnią się na tyle, by utrzymać tę otwartą. – Treb