zanim coś się zobowiązuje do opanowania
Zazwyczaj konfiguruję CI, aby uruchamiał się przy każdym zatwierdzeniu. Gałęzie nie łączą się w master, dopóki gałąź nie zostanie przetestowana. Jeśli polegasz na przeprowadzaniu testów na systemie głównym, otwiera się okno, w którym kompilacja może zostać uszkodzona.
Przeprowadzenie testów na komputerze CI dotyczy powtarzalnych wyników. Ponieważ serwer CI ma znane czyste środowisko pobrane z VCS, wiesz, że wyniki testu są poprawne. Podczas uruchamiania lokalnego możesz zapomnieć o zatwierdzeniu kodu potrzebnego do przekazania lub mieć niezatwierdzony kod, który powoduje, że przechodzą, gdy powinny zawieść.
Może także zaoszczędzić czas programistów, uruchamiając równolegle różne pakiety, szczególnie jeśli niektóre są powolnymi, wielominutowymi testami, które prawdopodobnie nie będą uruchamiane lokalnie po każdej zmianie.
W mojej obecnej pracy nasze wdrożenie produkcyjne jest testowane, gdy CI przejdzie wszystkie testy. Skrypty wdrażania zapobiegną wdrożeniu, chyba że zostaną przekazane. Uniemożliwia to przypadkowe zapomnienie ich uruchomienia.
CI będące częścią przepływu pracy odciąża również programistów. Czy jako programista zwykle przeprowadzasz linijkę, analizator statyczny, test jednostkowy, pokrycie kodu i test integracji dla każdej pojedynczej zmiany? CI może całkowicie automatycznie i bez konieczności myślenia o tym - zmniejszając zmęczenie decyzją.