GitHub Actions aneb CI/CD v cloudu

10. 8. 2021 Azure, Programming

Dnešní svět vyžaduje rapidní testování, build i deploy kódu, aby se mohl za pár minut dostat z repozitářů ke koncovým uživatelům. Proto jsou tu GitHub Actions, které všechny tyto věci dokážou dělat jak pro váš osobní projekt, tak i pro ty největší světové.

Co je to vlastně CI/CD?

CI/CD je zkratka pro Continuous Integration / Continuous Deployment, což obsahuje dva klíčové pojmy, které jsme si v úvodu zmiňovali. Continuous Integration zahrnuje build a testování kódu. Dvě klíčové vlastnosti k tomu, abyste si mohli být jistí, že bude aplikace fungovat všude správně. CI je tu v posledních letech hlavně proto, aby mohla zastupovat obrovské týmy testerů, kteří by museli manuálně, několik dní či týdnů, aplikaci testovat. To hezky navazuje na Continuous Deployment, které už dostává vaši aplikaci ven na veřejnost. I CD nám nahrazuje lidskou práci, kterou by jinak vykonávali správci systémů.

Overview dokončené action s několika kroky
Overview dokončené action s několika kroky | zdroj: github.com

Co to jsou GitHub Actions?

GitHub Actions je služba zprovozňovaná platformou GitHub, která vám umožňuje vytvářet skriptovací workflow celého vašeho repositáře. Kromě CI/CD vám umožňuje vytvářet jakékoliv jiné programy, které se spouští podle různých spouštěčů (seznam všech z nich můžete najít zde). GitHub umožňuje do vašich workflow skriptů importovat i skripty od jiných vývojářů. Všechny se dají najít na stránce GitHub Marketplace.

Jak to může pomoct mně?

GitHub Actions mohou pomoci v jednoduchosti správy téměř jakéhokoli projektu, protože vám pomůží zjistit potencionální problémy dříve, než je pozdě. Kromě fatálních problémů umožňuje i např. code linting, který vás upozorní, pokud by se vizuální stránka vašeho kódu mohla zlepšit. Všechny tyto „Workflows“ jsou pro projekty s menší nebo žádnou konfigurací. Jsou velmi jednoduché na nastavení, přičemž nemusíte prakticky napsat ani řádek kódu, pokud to není váš šálek kávy.

Užitečné Actions k vyzkoušení

Pojďme si jednu Action vytvořit!

Na tuto sekci budeme potřebovat:

Jako první přejdeme na váš repozitář a klikneme na záložku Actions.

Toolbar v repozitáři
Toolbar v repozitáři | zdroj: github.com

Zde už začíná magie. GitHub nám podle obsahu našeho repozitáře (dominantních jazyků, konfiguračních souborů apod.) předpřipraví Workflows, které můžeme jedním klikem nastavit. Já si zde vyberu Workflow s názvem Node.js, u kterého stisknu tlačítko Set up this workflow. Zde už si můžu upravit nějaké parametry. Výchozí parametry jsou takové, že se skript spustí vždy, když se na výchozí vývojové větvi udělá změna nebo na Pull Requestu, který má za terč náš výchozí branch. Také si tu můžeme nastavit verze Node.js, které chceme testovat. Výchozí nastavení je, že testujeme přes tzv. matrix strategii, která testuje všechny verze najednou. Toto vše můžeme nechat, jak je, já jen ve svém projektu vymažu poslední řádek npm test, protože na mém projektu nemám testy nastavené. Tady si můžeme změnit i jakékoliv příkazy, nebo dokonce i operačním systém, na kterém skript běží (ubuntu-latest pro Linux, windows-latest pro Windows Server 2019 a macos-latest pro macOS 10.15).

Přehled workflow
Přehled workflow | zdroj: github.com

Po kliknutí na Start Commit v pravém horním rohu klineme na tlačítko Commit new file, což nám vytvoří nový commit a instantně zapne první spuštění skriptu. Můžeme se na její postup podívát opět v záložce Actions. Po kliknutí na naši položku se nám ukáží detaily.

Běžící Action.
Běžící Action
Dokončená Action
Dokončená Action | zdroj: github.com

Zde se můžeme podívat i na logy jednotlivých spuštění. Kdyby došlo k chybě, tak i tu nalezneme tady.

Přehled všech kroků, které naše Action vykonala
Přehled všech kroků, které naše Action vykonala | zdroj: github.com

Závěr

Teď už máme naší Action vytvořenou, a víme, jak vytvořit další. Pokud chcete najít ještě další úžasné GitHub Actions, @sdras na GitHubu vytvořil velmi dlouhý seznam Actions ze všech možných kategorií, který můžete najít na github.com.

Hodně štěstí s vašimi CI/CD zážitky a kreativními výtvory a kdybyste si měli zájem vytvořit nějakou zajímavou aplikaci, určitě využijte některé z našich návodů. Určitě to stojí za to!