Principy GitHub Actions
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í.
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ů.
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.
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.