Utlösa ett arbetsflöde
Ingen bör tillåtas att skicka ändringar direkt till huvudgrenen i din kodlagringsplats. Om det är nödvändigt med någon utveckling bör du göra ändringar i en kopia av koden i en gren.
En vanlig metod är att arbeta med funktionsgrenar, där en gren används för att arbeta med en funktion. Data science-teamet kan till exempel behöva förbättra modellprestandan och försöka göra det genom att experimentera med hyperparametervärden. Teamet kan skapa en gren och uppdatera hyperparametervärdet i träningsskriptet. Och när det är klart med experimentering kan en dataexpert skapa en pull-begäran för att sammanfoga grenen med huvudplatsen.
Genom att arbeta med grenar och pull-begäranden kan du verifiera eventuella ändringar i koden innan du sammanfogar dem med huvudgrenen. Pull-begäranden kan också användas som utlösare för GitHub Actions för att automatisera uppgifter som behöver följa en föreslagen uppdatering av koden, till exempel automatiska kodkvalitetskontroller.
Om du vill använda funktionsbaserad utveckling tillsammans med automatisering måste du:
- Skapa en grenskyddsregel för att blockera direkt push-överföring till huvudregeln.
- Skapa en gren för att uppdatera koden.
- Utlös ett GitHub Actions-arbetsflöde när du öppnar en pull-begäran.
Skapa en grenskyddsregel
För att skydda koden vill du blockera alla direkta push-överföringar till huvudgrenen. Blockering av direkt push-överföring innebär att ingen kommer att tillåtas att direkt push-överföra några kodändringar till huvudgrenen. I stället kan ändringar i huvudgrenen göras genom sammanslagning av pull-begäranden.
Aktivera en grenskyddsregel i GitHub för att skydda huvudgrenen:
- Gå till fliken Inställningar på lagringsplatsen.
- På fliken Inställningar går du till Kod och automatisering och väljer Grenar.
- Välj Lägg till regel.
- Ange
main
under mönstret Förgreningsnamn. - Aktivera Kräv en pull-begäran innan du sammanfogar och Kräv godkännanden.
- Spara dina ändringar.
Skapa en gren för att uppdatera koden.
När du vill redigera koden måste du skapa en gren och arbeta där. När du vill göra ändringarna slutgiltiga kan du skapa en pull-begäran för att sammanfoga funktionsgrenen med huvudgrenen.
Dricks
Läs mer om källkontroll för maskininlärningsprojekt och arbeta med funktionsbaserad utveckling.
Utlösa ett GitHub Actions-arbetsflöde
Slutligen kanske du vill använda skapandet av pull-begäranden som utlösare för GitHub Actions-arbetsflöden. När någon till exempel gör ändringar i koden vill du köra några kodkvalitetskontroller.
Först när den redigerade koden har klarat kvalitetskontrollerna och någon har verifierat de föreslagna ändringarna, vill du faktiskt slå samman pull-begäran.
Om du vill utlösa ett GitHub Actions-arbetsflöde kan du använda on: [pull_request]
. När du använder den här utlösaren körs arbetsflödet när pull-begäran skapas.
Om du vill att ett arbetsflöde ska köras när en pull-begäran slås samman måste du använda en annan utlösare. Sammanslagning av en pull-begäran är i princip en push-överföring till huvudgrenen. Om du vill utlösa ett arbetsflöde som ska köras när en pull-begäran slås samman använder du följande utlösare i GitHub Actions-arbetsflödet:
on:
push:
branches:
- main