Wyzwalanie przepływu pracy
Nikt nie powinien mieć możliwości wypychania żadnych zmian bezpośrednio do gałęzi głównej w repozytorium kodu. W idealnym przypadku, jeśli jest to konieczne, należy wprowadzić zmiany w kopii kodu w gałęzi.
Typowym podejściem jest praca z gałęziami funkcji, w których gałąź jest używana do pracy nad funkcją. Na przykład zespół ds. nauki o danych może potrzebować zwiększenia wydajności modelu i spróbuje to zrobić, eksperymentując z wartościami hiperparametrów. Zespół może utworzyć gałąź, zaktualizować wartość hiperparametru w skrycie trenowania. Po wykonaniu eksperymentów analityk danych może utworzyć żądanie ściągnięcia, aby scalić gałąź z głównym repozytorium.
Praca z gałęziami i żądaniami ściągnięcia umożliwia zweryfikowanie wszelkich zmian w kodzie przed scaleniem ich z gałęzią główną. Żądania ściągnięcia mogą być również używane jako wyzwalacz dla funkcji GitHub Actions w celu zautomatyzowania zadań, które muszą być wykonywane zgodnie z proponowaną aktualizacją kodu, na przykład automatycznymi kontrolami jakości kodu.
Aby korzystać z programowania opartego na funkcjach wraz z automatyzacją, należy wykonać następujące kroki:
- Utwórz regułę ochrony gałęzi, aby zablokować bezpośrednie wypychania do głównego.
- Utwórz gałąź w celu zaktualizowania kodu.
- Wyzwalanie przepływu pracy funkcji GitHub Actions podczas otwierania żądania ściągnięcia.
Tworzenie reguły ochrony gałęzi
Aby chronić kod, należy zablokować wszystkie bezpośrednie wypchnięcia do gałęzi głównej. Blokowanie bezpośrednich wypchnięć oznacza, że nikt nie będzie mógł bezpośrednio wypchnąć żadnych zmian kodu do gałęzi głównej. Zamiast tego zmiany w gałęzi głównej można wprowadzać przez scalanie żądań ściągnięcia.
Aby chronić gałąź główną, włącz regułę ochrony gałęzi w usłudze GitHub:
- Przejdź do karty Ustawienia w repozytorium.
- Na karcie Ustawienia w obszarze Kod i automatyzacja wybierz pozycję Gałęzie.
- Wybierz Dodaj regułę.
- Wprowadź wartość
main
w obszarze Wzorzec nazwy gałęzi. - Włącz opcję Wymagaj żądania ściągnięcia przed scaleniem i Wymagaj zatwierdzeń.
- Zapisz zmiany.
Utwórz gałąź w celu zaktualizowania kodu.
Za każdym razem, gdy chcesz edytować kod, musisz utworzyć gałąź i pracować w niej. Po wprowadzeniu ostatecznych zmian możesz utworzyć żądanie ściągnięcia, aby scalić gałąź funkcji z gałęzią główną.
Napiwek
Dowiedz się więcej na temat kontroli źródła dla projektów uczenia maszynowego i pracy z programowaniem opartym na funkcjach.
Wyzwalanie przepływu pracy funkcji GitHub Actions
Na koniec możesz użyć tworzenia żądań ściągnięcia jako wyzwalacza dla przepływów pracy funkcji GitHub Actions. Na przykład za każdym razem, gdy ktoś wprowadza zmiany w kodzie, należy uruchomić pewne testy jakości kodu.
Tylko wtedy, gdy edytowany kod przeszedł kontrole jakości i ktoś zweryfikował proponowane zmiany, czy chcesz rzeczywiście scalić żądanie ściągnięcia.
Aby wyzwolić przepływ pracy funkcji GitHub Actions, możesz użyć polecenia on: [pull_request]
. Gdy używasz tego wyzwalacza, przepływ pracy będzie uruchamiany za każdym razem, gdy żądanie ściągnięcia zostanie utworzone.
Jeśli chcesz, aby przepływ pracy był uruchamiany za każdym razem, gdy żądanie ściągnięcia zostanie scalone, musisz użyć innego wyzwalacza. Scalanie żądania ściągnięcia jest zasadniczo wypchnięciem do gałęzi głównej. Aby wyzwolić przepływ pracy do uruchomienia po scaleniu żądania ściągnięcia, użyj następującego wyzwalacza w przepływie pracy funkcji GitHub Actions:
on:
push:
branches:
- main