Úvod do GitHub Actions

CI/CD pro Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Co je GitHub Actions?

  • GitHub Actions (GHA): CI/CD platforma pro automatizaci pipeline
  • Pipeline: posloupnost kroků reprezentující tok práce a dat
CI/CD pro Machine Learning

Co je GitHub Actions?

Obrázek automobilové montážní linky s pracovníky na různých stanicích, kteří provádějí konkrétní úkony, jako je montáž motoru, instalace kol a lakování karoserie.

CI/CD pro Machine Learning

Co je GitHub Actions?

GitHub Actions vytváří sérii definovaných akcí nebo kroků pro softwarový projekt, například checkout repozitáře, sestavení kódu, spuštění testů nebo nasazení aplikace.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD pro Machine Learning

Komponenty GHA: Událost

  • Událost: konkrétní aktivita v repozitáři, která spustí workflow
    • Push
    • Pull Request
    • Otevření issue
CI/CD pro Machine Learning

Komponenty GHA: Workflow

  • Workflow: automatizovaný proces spouštějící jednu nebo více úloh
    • Definován v souborech YAML
    • Spouštěn automaticky událostí
      • Možné i ruční spuštění
    • Uložen v adresáři .github/workflows v repozitáři
    • Lze definovat více workflows
CI/CD pro Machine Learning

Komponenty GHA: Kroky a akce

  • Kroky: jednotlivé pracovní jednotky
    • Spouštěny postupně, závisí na předchozím kroku
    • Běží na stejném stroji, data lze sdílet
    • Příklady pracovních jednotek
      • Kompilovaná aplikace, shellový skript
      • Akce: aplikace specifická pro platformu GHA
        • Např. checkout repozitáře, komentář k PR
CI/CD pro Machine Learning

Komponenty GHA: Úlohy a runnery

  • Úloha: sada kroků
    • Každá úloha je nezávislá
    • Možné paralelní spuštění
    • Spouštěna na výpočetním stroji zvaném runner
CI/CD pro Machine Learning

Jednoduchý workflow GHA

Obrázek události push v repozitáři, která spustila workflow s jednou úlohou běžící na runneru s Ubuntu Linuxem. Úloha obsahuje dva kroky: checkout repozitáře a spuštění kódu v Pythonu.

  • Událost: Push
  • Úloha: běží na runneru s Ubuntu, má dva kroky
    • Akce: Checkout repozitáře
    • Spuštění kódu v Pythonu
CI/CD pro Machine Learning

Vše dohromady

Obrázek typických komponent workflow GitHub Actions znázorňující paralelní spouštění úloh a sekvenční spouštění kroků.

CI/CD pro Machine Learning

Pojďme procvičovat!

CI/CD pro Machine Learning

Preparing Video For Download...