Nasz cykl rozwojowy/release działa tak:Jak mogę przekonać TeamCity do automatycznego połączenia gałęzi funkcji Git z master i nieudanej kompilacji w przypadku konfliktów scalania?
- Twórca tworzy gałąź funkcji, realizuje funkcję
- Twórca wskazuje funkcję jest gotowy do akceptacji testowania (UAT)
- Tester wykorzystuje funkcji gałąź i akceptuje (lub odrzuca) cECHA
akceptowanych cech są następnie łączone w gałęzi głównej przez tester i dlatego zostanie uwolnione podczas następnego rel cykl łatwości (wdrażamy kod trunk/master tygodniowo).
Występują frustracje związane z konfliktami seryjnymi, ponieważ do czasu, gdy tester zastosuje funkcję UAT i odkrył, że nie będzie się ona łączyć w sposób czysty, programista, który w niej pracował, przeszedł zwykle do czegoś innego.
Rozważamy rozwiązanie polegające na tym, że wszystkie gałęzie funkcji są automatycznie łączone przez TeamCity, z bieżącym gałęzią główną, a każda kompilacja powodująca konflikt scalania jest uważana za nieudaną kompilację - to da nam wczesną widoczność na problematyczne scalenia więc możemy je naprawić wcześniej.
TeamCity nie ma wbudowanej obsługi tego przepływu pracy (to znaczy, gdy naciśnięcie ma miejsce w oddziale X, moduł realizacji transakcji, scalenie gałęzi X na niej, kompilacja, test jednostki, utwórz pakiet). Czy ktoś utworzył podobny przepływ pracy za pomocą TeamCity i Github - może używając niestandardowych celów msbuild?
EDIT: powinienem wyjaśnić, że używamy GitHub ale obecnie używasz żądania Pull - brzmi jak to jest coś, co powinienem zbadać. :)
Świetne pytanie Dylan, sam chcę rozwiązać ten sam problem. Kiedy wspominasz GitHub w ostatnim zdaniu, masz na myśli Git zamiast tego? Ponieważ GitHub już implementuje tę funkcję. Już korzystam z niego w projektach open source. –