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ů.
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í
- actions/cache – Action pro ukládání mezipaměti různých persistentních objektů jako například balíčků závislostí.
- appleboy/gh-pages-action – Action pro deploy statických webových stránek na GitHub Pages.
- @actions/core – balíček pro zjednodušení vývoje actions v Javascriptu.
- actions/first-interaction – Action pro vytváření vlastních prvních interakcí s novými přispěvateli do vašeho repozitáře.
Pojďme si jednu Action vytvořit!
Na tuto sekci budeme potřebovat:
- Účet na GitHubu
- Testovací (nebo klidně jakýkoliv jiný) repozitář, ke kterému máte write permission (jste jeho vlastníkem nebo můžete upravovat soubory).
Jako první přejdeme na váš repozitář a klikneme na záložku Actions.
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).
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.
Zde se můžeme podívat i na logy jednotlivých spuštění. Kdyby došlo k chybě, tak i tu nalezneme tady.
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!