Mam kilka konkretnych pytań na temat wersjonowania w ciągłej dostawie. Myślę, że rozumiem globalny przepływ pracy, który jest mniej więcej taki:Tworzenie wersji w ciągłej dostawie
1) Code
2) Push to version Control
3) Continuous Integration (unit, integration and end-to-end auto testing)
4) Artifacts deployment
Co z wersjonowaniem? Jak zarządzać wersjami kompilacji?
Załóżmy, że pracujemy nad projektem opartym na Maven z wersją semantyczną: major.minor.build
.
Kiedy deweloper zatwierdza zmiany na serwerze VCS i CI, wykonaj kompilację, czy serwer CI powinien zwiększyć wersję kompilacji i utworzyć znacznik w VCS?
Czy ta wersja kompilacji jest obecna w kodzie źródłowym? Jeśli tak, po każdym naciśnięciu przycisku VCS programista powinien zaktualizować projekt, ponieważ serwer CI przydzielił zmiany w projekcie (przyrost wersji).
Jestem trochę zdezorientowany i chciałbym zrozumieć przebieg pracy płyty CD w praktyczny sposób.
Istnieje wiele sposobów podejścia do tego, w zależności od okoliczności i celów, które mogą być lepsze od innych. Istnieje wiele "standardowych" książek, które obejmują te podejścia ("Release It" jest jednym z nich). Rozpocznij od odpowiedzi na pytanie: Czy chcesz, aby każda kompilacja skutkowała wyjątkowym wersjonowanym artefaktem. Czemu? Dlaczego nie? A może "ręcznie" (np. Po sprintu) zdecydujesz, że nadszedł czas na nową wersję? – reto
Pytanie prawdopodobnie lepiej pasuje do http://programmers.stackexchange.com/ – reto