Mamy kogoś (nazwijmy go Ted), który jest odpowiedzialny za testowanie nowych funkcji i poprawek błędów.
Używamy Git i GitHub . master
powinno być / jest zawsze możliwe do wdrożenia i development
tam, 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/development
dodevelopment
swojego 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-branch
z listą rozgałęzień i widzi, żeorigin
je włączaissue-123
(powinno to być możliwe za pośrednictwem strony internetowej). Następnie kontynuujetest.ourproject.com
testowanie 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-123
nadevelopment
naorigin
. - 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-123
odniesienie do błędu / funkcji nr 123, ponieważ Ted dokumentuje każdy błąd / nową funkcję w naszym narzędziu do śledzenia problemów.