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!

Nastavení souborů Cookies

1. Co jsou soubory cookies

Soubory cookies jsou krátké textové soubory, které internetová stránka odešle do vašeho prohlížeče. Umožňují internetové stránce zaznamenat informace o vaší návštěvě, například zvolený jazyk a podobně. Následující návštěva stránek tak pro vás může být snazší a příjemnější. Soubory cookies jsou důležité, neboť bez nich by procházení sítě Internet bylo mnohem složitější. Soubory cookies umožňují lepší využití naší internetové stránky a přizpůsobení jejího obsahu vašim potřebám. Soubory cookies používá téměř každá internetová stránka na světě.

2. Druhy souborů cookies

Relační (tedy dočasné) soubory cookies nám umožňují propojovat vaše jednotlivé aktivity po dobu prohlížení těchto internetových stránek. V okamžiku otevření okna vašeho prohlížeče se tyto soubory vytvoří a po zavření okna vašeho prohlížeče se odstraní.

Trvalé soubory cookies nám pomáhají váš počítač identifikovat, jestliže opětovně navštívíte naši internetovou stránku.

3. Využívání souborů cookies

V souladu s ustanovením § 89 odst. 3 zák. č. 127/2005 Sb., o elektronických komunikacích, v účinném znění, si vás tímto dovolujeme informovat, že naše internetové stránky využívají pro svoji činnost soubory cookies, tedy vaše soubory cookies, včetně trvalých, zpracováváme.

Internetové prohlížeče obvykle obsahují správu souborů cookies. V rámci nastavení vašeho prohlížeče tak pravděpodobně můžete jednotlivé soubory cookies ručně mazat, blokovat či zcela zakázat jejich používání. Pro více informací použijte nápovědu vašeho internetového prohlížeče. Jsou-li cookies povoleny, lze toto nastavení internetového prohlížeče považovat za souhlas se zpracováním osobních údajů.

4. Účel použití souborů cookies

K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookies. Informace o tom, jak náš web používáte, sdílíme se svými partnery působícími v oblasti sociálních médií, inzerce a analýz. Používáním internetových stránek vyjadřujete souhlas propojením následujících služeb: Google Analytics, Google Tag Manager, Facebook Pixel, Microsoft Clarity.

Soubory cookies využíváme, kromě účelu uvedeného v předchozím odstavci, pouze pro měření návštěvnosti webové stránky.

5. Správce osobních údajů

Provozovatelem webové stránky studuj.digital a správcem osobních údajů je společnost: pg-sec s.r.o., sídlem Rybná 716/24, Staré Město, 110 00 Praha 1, identifikační číslo 09580905, zapsaná v obchodním rejstříku Městského soudu v Praze, oddíl C, vložka 338028.

​6. Zásady ochrany osobních údajů

Podrobnější informace o souborech cookies a zpracování tvých osobních údajů najdete v našich Zásadách ochrany osobních údajů.

Nezbytné

Tyto soubory cookie jsou nutné pro základní funkce stránky, a jsou proto vždy povolené. Mezi ně patří soubory cookie, které stránce umožňují si vás zapamatovat při procházení stránky v rámci jedné relace nebo, pokud o ně požádáte, mezi relacemi.

Volitelné

Výkon

Tyto soubory cookie nám pomáhají vylepšovat funkce stránek sledováním využití této webové stránky. V některých případech zrychlují zpracování vašeho požadavku a umožňují nám zapamatovat si vaše vybrané předvolby na stránce. Pokud soubory cookie zakážete, může se tím zhoršit přesnost našich doporučení a zpomalit funkčnost stránek.

Sociální média a relamy

Díky souborům cookies sociálních médií si můžete připojit ke svým sociálním sítím a prostřednictvím sociálních médií sdílet obsah z naší webové stránky. Reklamní soubory cookie (třetích stran) shromažďují informace pro lepší přizpůsobení reklamy tvým zájmům, a to na webových stránkách studuj.digital i mimo ně. V některých případech tyto soubory cookies zpracovávají vaše osobní údaje. Pokud chcete získat více informací o zpracování osobních údajů, přečtěte si naše Zásady ochrany osobních údajů. Pokud zakážete soubory cookies, mohou se zobrazovat reklamy, které méně souvisejí s vašimi zájmy, nebo nebudete moci účinně používat odkazy na Facebook, Instagram či jiné sociální sítě anebo nebudete moci sdílet obsah na sociálnch médiích.