Przejdź do treści

Szkolenie CI/CD z GitHub Actions

Zbudujesz szybki i bezpieczny pipeline, który testuje każdy pull request i wdraża projekt po scaleniu.

  • Czas trwania: 2 dni
  • Poziom: średniozaawansowany
  • Forma: warsztat dla zespołu
Zapytaj o termin Pobierz program (PDF)

Prawie każdy projekt ma dziś pipeline, ale rzadko ktoś w zespole wie, jak działa. Testy trwają 20 minut, co któryś przebieg pada bez powodu, a sekrety leżą w miejscach, w których nie powinny. Plik workflow poprawia się metodą prób i błędów.

Na szkoleniu budujesz od zera pipeline dla aplikacji webowej: od testów przy każdym pull requeście, przez cache i równoległe zadania, po wdrożenie i ochronę gałęzi. Dostajesz wzorce, które przeniesiesz do swojego repozytorium tego samego dnia.

Program

2 dni

  • Podstawy GitHub Actions
    • Workflow, job, step i runner
    • Zdarzenia: push, pull_request, schedule, workflow_dispatch
    • Runnery GitHuba (także arm64) i self-hosted: koszty i bezpieczeństwo
    • Co zależy od planu w repozytoriach prywatnych: rulesets, środowiska z akceptacją, merge queue i CodeQL
  • Pipeline dla aplikacji webowej
    • Instalacja zależności, lint, testy, build
    • Wersja Node.js z pliku .nvmrc
    • Artefakty i raporty z testów
    • Wdrożenie na GitHub Pages jako pierwszy, najprostszy cel
  • Szybkość
    • Cache zależności i przeglądarek do testów
    • Macierz wersji i równoległe zadania
    • concurrency: anulowanie nieaktualnych przebiegów
    • Limity czasu, które ratują przed wiszącymi zadaniami
  • Bezpieczeństwo
    • Minimalne uprawnienia tokena (permissions)
    • Sekrety i zmienne środowiskowe
    • Akcje z Marketplace: przypinanie do pełnego SHA i polityka dozwolonych akcji (lekcje z ataków na tj-actions i trivy-action)
    • pull_request_target i wstrzykiwanie poleceń przez wyrażenia w krokach run
    • Aktualizacje zależności z Dependabotem i skanowanie kodu z CodeQL
  • Ochrona gałęzi
    • Rulesets i wymagane sprawdzenia (status checks) dla main
    • Merge queue: scalanie dopiero po zielonym pipeline
  • Wdrożenia
    • Środowiska z akceptacją przed wdrożeniem na produkcję
    • OIDC: wdrożenie do chmury bez kluczy w sekretach (ćwiczenie na jednej chmurze: AWS, Azure albo Google Cloud)
    • Budowanie obrazu Dockera, cache warstw i publikacja w rejestrze
  • Utrzymanie
    • Workflow wielokrotnego użytku i własne akcje złożone (composite)
    • Kotwice YAML: mniej powtórzeń w jednym pliku
    • Debugowanie nieudanego przebiegu
    • gh w terminalu: logi, ponowne uruchomienie, status

Jak napisać Dockerfile, który dobrze się cache’uje, pokazuję na szkoleniu Docker.

Dla kogo?

  • Dla zespołów, w których pipeline „po prostu jest” i nikt go nie rozumie.
  • Dla programistów, którzy przenoszą projekt na GitHub Actions z innego CI.
  • Dla osób odpowiedzialnych za jakość i wdrożenia w zespole.

Co musisz umieć?

  • Pracować z Gitem i GitHubem: gałęzie, pull requesty.
  • Uruchomić testy i build projektu z linii poleceń.
  • Znać podstawy składni YAML: listy, mapy, wcięcia.
  • Mieć dostęp do konta w AWS, Azure albo Google Cloud z prawem do tworzenia ról.
  • Mieć konto na GitHubie i organizację (wystarczy darmowa), w której założysz publiczne repozytorium do ćwiczeń z merge queue. W prywatnym repozytorium merge queue wymaga planu Enterprise Cloud.

Czego się nauczysz?

  • Napiszesz workflow, który testuje każdy pull request.
  • Skrócisz czas pipeline’u dzięki cache i równoległym zadaniom.
  • Zabezpieczysz sekrety, ograniczysz uprawnienia tokena i przypniesz akcje do SHA.
  • Rozpoznasz workflow podatny na atak z forka i go naprawisz.
  • Skonfigurujesz ruleset z wymaganymi sprawdzeniami i, jeśli pozwala na to plan, merge queue.
  • Wdrożysz aplikację do chmury przez OIDC, bez długowiecznych kluczy.
  • Zautomatyzujesz wdrożenie po scaleniu zmian.
  • Wydzielisz powtarzalne kroki do workflow wielokrotnego użytku.

Trener

@piecioshka

Piotr Kowalski

W branży IT od 2008 roku. Od 2014 jest mentorem dla wielu developerów. Jako trener spędził na sali szkoleniowej kilka tysięcy godzin, a na LinkedIn ma 52 rekomendacje. Każde jego szkolenie to dawka solidnej wiedzy oraz humoru.

Więcej na stronie "O mnie"

Zorganizujmy to szkolenie w Twoim zespole

Napisz, z czym pracujecie i na jakim poziomie jest grupa. Odpowiem z propozycją programu dopasowanego do Waszego projektu.

Zapytaj o szkolenie Pobierz program (PDF) Zobacz wszystkie szkolenia