Backend

GitHub Actions – co to i dlaczego warto z tego korzystać?

github actions

W tym artykule znajdziesz wyjaśnienie podstawowych konceptów GitHub Actions, czyli dedykowanego GitHubowi narzędzia ciągłych integracji oraz dostarczania (ang. Continuous Integration/Continuous Delivery, CI/CD).

karol ciemborowicz hyland

Karol Ciemborowicz. Starszy inżynier oprogramowania w Hyland. Entuzjasta Agile, zwolennik interdyscyplinarnych zespołów, lifelong learner; w branży IT od ponad dekady.


Same praktyki CI/CD są co prawda dobrze już ugruntowaną częścią pracy programistów. Ich pozytywny wpływ na jakość oprogramowania został wykazany (np. tu), na rynku nie brakuje też narzędzi wspomagających je (przykładowo: Jenkins, AWS CodePipeline, Azure DevOps, TeamCity czy GitLab CI).

Jednakże to właśnie Github Actions obecnie wyznacza coraz nowe poziomy odniesienia w kwestii łatwości obsługi i utrzymania. Od 2018 r. zespół Microsoft skutecznie wplata w nie najlepsze praktyki dziedziny wykorzystując swoje doświadczenie z prac nad Azure DevOps (starszą, bardziej dojrzałą alternatywą CI/CD). Platforma jest jednocześnie tworem nowym, świeżym, pozbawionym balastu zdezaktualizowanych już podejść i utrzymywanych jedynie dla wstecznej kompatybilności rozwiązań.

Przyjrzyjmy się czterem głównym cechom Github Actions, które moim zdaniem składają się na wyróżniającą to narzędzie prostotę, na przykładzie publicznego repozytorium trebuchet-action.

1. Integracja z GitHubem

Narzędzie jest domyślnie gotowe do użycia dla każdego repozytorium, nie wymaga instalacji, integracji czy osobnej konfiguracji uwierzytelniania. Spójne są także nazewnictwo i interfejsy użytkownika GitHuba oraz GitHub Actions.

integracja z githubem

Źródło: github.com/HylandSoftware

2. Infrastruktura w chmurze

infrastruktura w chmurze

Odpowiedzialność za środowiska uruchomieniowe GitHub Actions jest w całości po stronie GitHuba, który zarządza całą fizyczną infrastrukturą, pośredniczącym oprogramowaniem, dostosowuje moc obliczeniową do aktualnych potrzeb, a także zapewnia aktualizacje oraz bezpieczeństwo. Obowiązki użytkownika w zakresie infrastruktury w zasadzie sprowadzają się do wyboru wirtualnego środowiska spośród dostępnych:

Źródło: docs.github.com/en/actions/using-github-hosted-runners

3. Czytelna składnia

Narzędzie opiera się na czytelnym języku YAML i niewielkiej liczbie deklaratywnie używanych kluczowych pojęć. Podstawowymi elementami potoku zadań (ang. workflow) są zadania (ang. jobs), które z kolei składają się z kroków (ang. steps). Potoki mogą być uruchamiane ręcznie lub jako reakcje na zdarzenia zachodzące w repozytorium (np. otwarcie pull requesta). Pliki YAML definiujące potoki są także składowane bezpośrednio w repozytorium, a co za tym idzie również podlegają wersjonowaniu.

Zadania potoku można także enkapsulować w postaci tytułowych akcji w osobnych repozytoriach. Akcje mogą przyjmować postać skryptów powłoki lub programów w języku TypeScript/JavaScript. Zbiór akcji realizujących często stosowane kroki i rozwiązania (jak operacje na repozytorium, czy wersjonowanie lub udostępnianie artefaktów) jest współtworzony z GitHubem przez społeczność oraz publicznie dostępny, co dodatkowo usprawnia tworzenie nowych potoków. Używane w charakterze przykładu repozytorium trebuchet-action zawiera – nomen omen – właśnie implementację akcji.

czytelna składnia github

Źródło: github.com/HylandSoftware

4. Czytelny status

Przejrzysta wizualizacja potoku zapewnia czytelność aktualnego statusu narzędzia, zależności pomiędzy składającymi się na nie akcjami, czasów ich trwania oraz wgląd w ewentualne błędy.

czytelny status github

Źródło: github.com/HylandSoftware

status github

Źródło: github.com/HylandSoftware

Prócz prostoty, GitHub Actions cechuje także mnogość innych nie mniej ważnych zalet, jak:

  • Brak opłat dla repozytoriów publicznych (tak!) oraz comiesięczne bezpłatne okresy działania dla prywatnych, co umożliwia sprawdzenie narzędzia bez zobowiązań.
  • Wbudowane lub dostarczone przez społeczność wsparcie dla wielu popularnych ekosystemów programistycznych, środowisk uruchomieniowych oraz technologii.
  • Integracja z mechanizmami automatycznej aktualizacji zależności, skanowania kodu w poszukiwaniu niezabezpieczonych błędów, czy informowania o wyciekach danych wrażliwych, jak klucze dostępu.
  • Skrócenie czasów budowania i testowania dzięki możliwości łatwego przyspieszania ich poprzez współbieżne wykonywanie niezależnych od siebie kroków.

Podsumowując, GitHub Actions ma wiele zalet, które przemawiają za tym, by właśnie skorzystać z tego, a nie z innego narzędzia. Świetna integracja z GitHubem, łatwa obsługa, przystępny model oraz dostępność działania zapewniają GitHub Actions niski próg wejścia. Wymienione wyżej zalety to tylko wierzchołek góry lodowej, jest ich zdecydowanie więcej. Poznacie je szybko, gdy zaczniecie korzystać z GitHub Actions.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/github-actions-co-to-jest-i-dlaczego-powinienes-z-tego-korzystac/" order_type="social" width="100%" count_of_comments="8" ]