Typowym rozwiązaniem jest uruchomienie kompilacji CI (Continuous Integration) na serwerze kompilacji: będzie analizować kod źródłowy, tworzyć kompilację (podczas debugowania) i uruchamiać testy, mierzyć pokrycie testu itp.
Teraz innym znanym typem kompilacji jest „Kompilacja nocna”: rób powolne rzeczy, takie jak tworzenie dokumentów kodu, tworzenie pakietu instalacyjnego, wdrażanie w środowisku testowym i uruchamianie automatycznych testów (dymu lub akceptacji) w środowisku testowym itp.
Teraz pytanie:
- Czy lepiej jest mieć trzecią osobną wersję kompilacji jako kompilację wersji?
- A może „Nightly build” w trybie wydania i używać go jako wydania?
Czego używasz w swojej firmie?
(Wersja kompilacji powinna również dodać tag do kontroli źródła potencjalnej wersji produktu).
źródło
Jedną rzeczą, na której mi zależy, jest umieszczenie nocnej wersji w trybie wydania zamiast w trybie debugowania. W ramach rejestrowania, takich jak log4net zastępujący System.Diagnostics.Debug, główne różnice między trybami Release i Debug są czasem życia obiektu i optymalizacją kodu.
Jeśli nie chcesz dołączać debugera do swojej nocnej wersji, sugerowałbym to również.
Proces, który wykonujemy jest taki, że kompilacja nocna jest uruchamiana co noc, a jeśli to zadziała, możemy wdrożyć tę samą kompilację na naszych innych serwerach (bez przebudowy, po prostu weź spakowane instalatory i uruchom je). Jeśli mamy problem z kompilacją nocną, sprawdzamy zmiany w gałęzi i uruchamiamy kompilację „nocną” z tej gałęzi w ciągu dnia. Testy można następnie ponownie uruchomić.
źródło