Utforska kontinuerlig leverans med GitHub Actions
GitHub Actions tillhandahåller mekanismen för att implementera arbetsflöden för programvaruleverans med hjälp av funktionerna i GitHub-plattformen. Detta skulle vara den mest optimala CI/CD-metoden för organisationen i vårt exempelscenario, med tanke på dess planer på att använda GitHub för sin DevOps-resa. I den här lektionen får du lära dig mer om hur du använder GitHub Actions för att skapa och köra CI/CD-arbetsflöden.
Vad är GitHub Actions?
När det gäller GitHub har termåtgärderna faktiskt en dubbel innebörd. Den första (åtgärder) representerar GitHub-tjänsten, som gav möjligheten att implementera CI/CD-arbetsflöden. Den andra (gemener actions) anger återanvändbara enheter som kan integreras i arbetsflöden för att tillhandahålla en specifik funktionalitet, till exempel att köra skript och körbara filer, att skapa och ladda upp artefakter eller att ställa in åtkomst till en Azure-prenumeration.
Vilka är huvudkomponenterna i GitHub Actions?
De viktigaste komponenterna i GitHub Actions är:
- workflow: en sekvens med steg som lagras i en YAML-formaterad fil. Arbetsflöden utför stegen när de utlöses manuellt eller (oftare) automatiskt av lagringsplatsrelaterade aktiviteter, till exempel push-överföring eller grensammanslagningar.
- jobb: ett toppelement i ett arbetsflöde. Jobb i ett arbetsflöde kan köras parallellt eller sekventiellt.
- steg: ett topp-element inom ett jobb. Varje steg är en uppgift eller åtgärd som utför en specifik aktivitet, till exempel att köra ett skript eller skapa en artefakt.
- åtgärd: en fördefinierad eller anpassad utvecklad aktivitet (som tidigare nämnts). GitHub tillhandahåller en marknadsplats där du kan hitta ett brett utbud av fördefinierade åtgärder.
- variabel: ett namngivet värde som gör att du kan lagra och återanvända data mellan steg i ett arbetsflöde. Du kan skapa egna anpassade variabler eller använda någon av de fördefinierade standardmiljövariablerna som anges automatiskt i varje arbetsflöde.
- hemlighet: en krypterad variabel som kan användas för att lagra känsliga data.
Hur skapar jag ett GitHub Actions-arbetsflöde?
Använd följande steg för att skapa ett GitHub Actions-arbetsflöde:
- Skapa en lagringsplats. För att implementera GitHub Actions-arbetsflödet behöver du ett GitHub-konto och en lagringsplats. Som standard innehåller en ny lagringsplats standardgrenen, vanligtvis med namnet main.
- Skapa en .github/workflows-katalog. GitHub Actions-arbetsflöden ska finnas i katalogen .github/workflows i lagringsplatsens rot.
- Skapa en YAML-fil. GitHub Actions-arbetsflödet har YAML-format. Namnet är godtyckligt, men filändelsen förväntas att vara inställd på .yml.
- Definiera arbetsflödet i YAML-filen och spara ändringarna. YAML-filen måste innehålla arbetsflödesdefinitionen.
- Skicka den sparade filen till repositoryt. För att slutföra arbetsflödesändringarna måste du utföra incheckningen, precis som med alla filer som ingår i lagringsplatsen. Om du bestämmer dig för att skapa ett arbetsflöde på den lokala datorn (i stället för att använda GitHub-webbgränssnittet) klonar du lagringsplatsen när du har skapat den, tillämpar och genomför ändringar lokalt och skickar dem sedan till GitHub.
Här är ett enkelt exempel på ett GitHub Actions-arbetsflöde som visar ett meddelande Hello från GitHub Actions! när det har körts.
name: Simple GitHub Actions workflow
on: [push]
jobs:
say_hello:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Run Build Script
run: |
echo "Hello, GitHub Actions!"
Den första raden i arbetsflödet definierar dess namn, som visas på lagringsplatsens åtgärdsflik i GitHub-webbgränssnittet. Raden on: [push] betecknar händelsen som utlöser arbetsflödeskörningen (i det här fallet en push till en gren i arbetsflödets lagringsplats).
Arbetsflödet består av ett enda jobb med namnet say_hello, vilket anges av innehållet som följer raden jobs: . Nästa rad (runs-on: ubuntu-latest) bestämmer vilken typ av operativsystem som ska användas för att köra jobbet. Valet är beroende av de uppgifter som jobbet innehåller och i det här fallet skulle jobbet även köras på alla Windows-baserade operativsystem.
Jobbet består av två steg, vilket anges av innehållet som följer steps: raden. Stegsyntaxen stöder ett valfritt namnattribut som kan vara till hjälp för att förstå stegets syfte vid granskning av arbetsflödets körningar. Resten av syntaxen är beroende av vilken typ av åtgärd som ett visst steg är avsett att utföra. I det här exemplet är det första steget att checka ut den aktuella lagringsplatsen (som laddar ned innehållet i lagringsplatsen till systemet där jobbet körs), medan det andra kör ekokommandot , som visar ett eget meddelande.
Om du vill integrera CI/CD-funktionerna i GitHub Actions-arbetsflöden lägger du till en serie steg (i ett eller flera jobb) som utför automatiserade bygg-, test- och distributionsåtgärder. När arbetsflödeskörningen har utlösts kan du spåra dess förlopp genom att gå till fliken "Åtgärder" på din GitHub-lagringsplats.
Not
Du får chansen att arbeta med mer meningsfulla exempel på GitHub Actions-arbetsflöden som illustrerar CI/CD-integrering i labbet i den här modulen.