Principy GitHub Actions

Dokončeno

Kroky v procesu nasazení můžete automatizovat pomocí pracovního postupu. Pokaždé, když provedete změnu kódu a potvrdíte změnu do úložiště Git, pracovní postup spustí předdefinovaný proces. Pracovní postup může ověřit, jestli kód Bicep splňuje vaše standardy kvality, a pak automatizovat akce pro nasazení vašich prostředků do Azure. Proces je definován v definici pracovního postupu, kterou vytvoříte.

GitHub Actions je funkce GitHubu. GitHub také hostuje úložiště Git, která používáte k ukládání a sdílení kódu se spolupracovníky. Při ukládání kódu Bicep na GitHubu má GitHub Actions přístup k vašemu kódu a automatizovat procesy nasazení. V této lekci se dozvíte o GitHub Actions.

Co je pracovní postup?

Pracovní postup je konfigurovatelný opakovatelný proces definovaný v souboru, který se používá k otestování a nasazení kódu. Pracovní postup se skládá ze všech kroků ve správném pořadí, které je potřeba provést.

Při práci s GitHub Actions definujete konfiguraci pracovního postupu v souboru YAML. Vzhledem k tomu, že soubor YAML pracovního postupu je soubor s kódem, soubor se uloží s kódem Bicep v úložišti Git ve složce s názvem .github/workflows. Soubor YAML je strukturovaný textový soubor, který se podobá strukturovanému textovému souboru Bicep. Soubor YAML můžete vytvořit a upravit pomocí libovolného textového editoru. V tomto modulu použijete editor Visual Studio Code. Webové rozhraní GitHubu poskytuje nástroje, které můžete použít k zobrazení a úpravě souboru YAML pracovního postupu, spolupráci na definici pracovního postupu a ke správě různých verzí souboru pracovního postupu pomocí potvrzení a větví.

Běžci

Doteď jste nasadili soubory Bicep z místního počítače. Po napsání šablony Bicep ji nasadíte do Azure pomocí Azure CLI nebo Azure PowerShellu. Tyto nástroje používají prostředky počítače k odeslání šablony do Azure. Používají vaši osobní identitu k ověření v Azure a k ověření, že máte oprávnění k nasazení prostředků.

Pracovní postup také potřebuje přístup k počítači nebo GPU se správným operačním systémem a hardwarovou platformou, aby mohl provádět akce nasazení. GitHub Actions používá spouštěče, což jsou počítače, které jsou nakonfigurované ke spuštění kroků nasazení pro pracovní postup. Každý spouštěč už má nástroje Bicep a Azure, které jste použili v dřívějších modulech, takže může dělat stejné věci jako na vlastním počítači. Místo příkazů, které spouští člověk, služba GitHub Actions dává spouštěči pokyn, aby spustil kroky, které jste definovali v souboru YAML pracovního postupu.

GitHub Actions poskytuje více typů spouštěčů pro různé operační systémy, jako je Linux nebo Windows, a různé sady nástrojů. GitHub tyto spouštěče spravuje, takže nemusíte udržovat žádnou výpočetní infrastrukturu pro spouštěče. Běžci se někdy označují jako spouštěče hostované na GitHubu nebo hostované spouštěče , protože jsou hostované vaším jménem. Po spuštění pracovního postupu se automaticky vytvoří hostovaný spouštěč. Po dokončení vašeho pracovního postupu se hostovaný spouštěč automaticky odstraní. K hostovaným spouštěčům nemáte přístup přímo, proto je důležité, aby váš pracovní postup obsahoval všechny kroky potřebné k nasazení řešení.

Diagram that shows a workflow that runs on a runner.

Poznámka:

Můžete vytvořit vlastní spouštěč, který se nazývá spouštěč v místním prostředí. Pokud máte konkrétní software, který potřebujete spustit jako součást pracovního postupu, nebo pokud potřebujete přesně řídit, jak je spouštěč nakonfigurovaný, můžete vytvořit spouštěč v místním prostředí. V tomto modulu nediskutujeme o spouštěčích v místním prostředí, ale poskytujeme odkaz na další informace v části Souhrn.

Spouštěče

Pomocí triggeru můžete dát GitHub Actions pokyn, kdy spustit pracovní postup. Můžete si vybrat z několika typů triggerů. Prozatím pomocí ručního triggeru sdělíte GitHub Actions, kdy chcete spustit pracovní postup. Později v tomto modulu se dozvíte více o dalších typech triggerů.

Diagram that shows a trigger initiating a workflow.

Kroky

Krok představuje jednu operaci, kterou pracovní postup provádí. Krok se podobá jednotlivému příkazu, který spustíte v prostředí Bash nebo PowerShellu. U většiny nasazení provedete několik kroků v posloupnosti. Definujete sekvenci a všechny podrobnosti o jednotlivých krocích v souboru YAML pracovního postupu.

GitHub Actions nabízí dva typy kroků:

  • Kroky spuštění: Pomocí kroku spuštění můžete spustit jeden příkaz nebo posloupnost příkazů v prostředí Bash, PowerShell nebo příkazovém prostředí Windows.
  • Kroky akce: Krok akce je pohodlný způsob, jak získat přístup k mnoha různým funkcím bez psaní příkazů skriptu. Existuje například integrovaná úloha pro nasazení souborů Bicep do Azure. Kdokoli může napsat akci a sdílet ji s ostatními uživateli. K dispozici je velká sada komerčních a opensourcových úloh.

Někteří lidé raději místo akcí používají příkazy skriptu, protože nabízejí větší kontrolu nad tím, co se spustí. Jiní uživatelé raději používají akce, aby nemuseli psát a spravovat skripty. V tomto modulu použijeme kombinaci obou přístupů.

Úlohy

V GitHub Actions představuje úloha seřazenou sadu kroků. Vždy máte v pracovním postupu alespoň jednu úlohu a při vytváření složitých nasazení je běžné mít více než jednu úlohu.

Poznámka:

Každou úlohu můžete nastavit tak, aby běžela na jiném spouštěči. Spouštění úloh na různých spouštěčích je užitečné při sestavování a nasazování řešení, která potřebují používat různé operační systémy v různých částech pracovního postupu úlohy.

Předpokládejme například, že vytváříte aplikaci pro iOS a back-endovou službu aplikace. Můžete mít jednu úlohu, která běží na spouštěči macOS pro sestavení aplikace pro iOS a další úlohy, která běží na Ubuntu nebo Windows runneru pro sestavení back-endu. Můžete dokonce říct pracovnímu postupu, aby spustil dvě úlohy současně, což zrychluje provádění pracovního postupu.

Diagram that shows a workflow with two steps, both within one job.

Příklad základního pracovního postupu

Teď, když znáte základní koncepty GitHub Actions, se podíváme na jednoduchou definici pracovního postupu v YAML:

name: learn-github-actions

on: [workflow_dispatch]

jobs:
  say-hello:
    runs-on: ubuntu-latest
    steps:
      - name: 'Run a one-line command'
        run: echo "hello from GitHub Actions"
      - name: 'Run a multi-line command'
        run: |
          echo "We'll add more steps soon."
          echo "For example, we'll add our Bicep deployment step."

Pojďme se podrobněji podívat na jednotlivé části souboru:

  • name je název pracovního postupu. Název se zobrazí ve webovém rozhraní GitHubu.
  • on řekne vašemu pracovnímu postupu, kdy se má provést. V tomto případě řekne GitHub Actions, on: [workflow_dispatch] že chcete pracovní postup aktivovat ručně.
  • jobs seskupí všechny úlohy v pracovním postupu.
  • say-hello je název vaší první a jediné úlohy v tomto pracovním postupu.
  • runs-on instruuje pracovní postup, který má spouštěč použít při spuštění úlohy. V tomto příkladu se pracovní postup spouští v operačním systému Ubuntu, který pochází z fondu spouštěčů hostovaných na GitHubu.
  • steps vypíše posloupnost kroků, které se mají v úloze spustit. Příklad YAML má dva kroky. Oba kroky spustí jednoduchý skript, který ozvěna nějaký text. Každý krok má name hodnotu, která je čitelná pro člověka. Název se zobrazí v protokolech pracovního postupu. Pokud chcete vytvořit krok skriptu s více řádky, použijte znak svislé čáry (|), jak je znázorněno v příkladu. Po provedení kroku uvidíte výstupy v protokolu pracovního postupu.

Důležité

V souborech YAML je odsazení důležité. Podívejte se na příklad YAML. Některé řádky v YAML jsou odsazené dvěma nebo čtyřmi mezerami. Pokud soubor neodsadíte správně, GitHub Actions ho nedokáže interpretovat. Visual Studio Code vám pomůže najít a opravit chyby v odsazení souboru YAML.