GitHub Actions: první dojmy

Při hledání automatizačních nástrojů jsem narazil na GitHub Actions a po prvním otestování se mi fakt líbí! Podporuje Continuous Integration / Continuous Delivery a máte-li vlastní železo, dá se používat i zdarma pro privátní repozitáře.

Z CI/CD nástrojů znám nejvíc asi Travis CI. Travis je výborný nástroj pro public repozitáře, ale pro private je poměrně drahý. Uvítal jsem tedy možnost vyzkoušet konkurenční nástroj přímo od GitHubu.

GitHub Actions umožňují vytvořit si skript, který se automaticky spustí po předem definované akci (push, vytvoření issue, vytvoření release). Ve skriptech je možné používat docker kontejnery, jiné repozitáře, matice nastavení (matrix). Pro zjednodušení vytváření častých úkolů je možné na Marketplace najít spoustu komunitou vytvořených funkčností.

Zdarma i pro privátní repozitáře

Jako jeden z mála CI/CD systémů umožňuje self-hosted variantu pro privátní repozitáře zdarma. Máte-li na GitHubu jen základní účet (Free), dostanete 2 000 minut. Další si můžete připlatit za 0,008 dolarů za minutu (Linux).

Také je ale možné si stáhnout speciální aplikaci a GitHub pak bude spouštět automatizované akce v self-hosted prostředí.

V takovém případě jsou GitHub Actions úplně zdarma – pokud máte třeba lokální počítač nebo nějaký nevyužitý server, na němž může s výhodou běžet.

K čemu se dá použít?

Přiznám se, že Travis neznám víc, než co je vidět v balíčcích kolem Nette. Nikdy jsem tedy přes něj nedělal automatizovaný deployment.

Ale na první pohled zvládnou Github Actions to samé. Dají se v nich dělat automatizované testy (třeba pomocí Nette\Tester, PHPUnit), statická analýza (PHPStan), kontrola coding standards, code coverage.

Výsledek pak může vypadat nějak takto: