Mamy kogoś (nazwijmy go Ted), który jest odpowiedzialny za testowanie nowych funkcji i poprawek błędów.
Używamy Git i GitHub . masterpowinno być / jest zawsze możliwe do wdrożenia i developmenttam, gdzie zatwierdzamy / łączymy nowe funkcje lub poprawki błędów, ale dopiero po ich przetestowaniu przez Ted.
Projekt jest w języku PHP.
Chciałbym, aby proces testowania przebiegał tak:
- Deweloper chce pracować nad nową funkcją (powiedzmy funkcja / błąd nr 123, jak Ted udokumentował w narzędziu do śledzenia problemów), więc przyciąga się
origin/developmentdodevelopmentswojego lokalnego repozytorium i tworzy od tego miejsca nową gałąź (powiedzmyissue-123). - Kiedy jest zadowolony ze swojej pracy, zobowiązuje się i przenosi swój nowy oddział do
origin. - Ted łączy się
test.ourproject.com/choose-branchz listą rozgałęzień i widzi, żeoriginje włączaissue-123(powinno to być możliwe za pośrednictwem strony internetowej). Następnie kontynuujetest.ourproject.comtestowanie aplikacji internetowej (jest naprawdę bezlitosny), a po kilku rozmowach z deweloperem jest zadowolony z tej funkcji. - Ted mówi deweloper, który potrafi scalić
issue-123nadevelopmentnaorigin. - Wypłukać i powtórzyć.
W trzecim kroku mogłem zhakować coś, co wykonuje zadanie (wyświetlanie i przełączanie gałęzi z określonej strony), ale wydaje mi się, że to, co opisałem, jest bardzo powszechnym wzorcem.
Więc moje pytanie brzmi: czy jest to dobry / zrównoważony / możliwy do utrzymania przepływ pracy dla rozgałęzień? Czy możesz wykonać kopię zapasową swojej odpowiedzi, przytaczając przykłady innych projektów po tym przepływie pracy?
issue-123odniesienie do błędu / funkcji nr 123, ponieważ Ted dokumentuje każdy błąd / nową funkcję w naszym narzędziu do śledzenia problemów.