Wprowadzenie do GitHub Actions

CI/CD dla uczenia maszynowego

Ravi Bhadauria

Machine Learning Engineer

Czym jest GitHub Actions?

  • GitHub Actions (GHA): platforma CI/CD do automatyzacji potoków
  • Potok: sekwencja kroków reprezentujących przepływ pracy i danych
CI/CD dla uczenia maszynowego

Czym jest GitHub Actions?

Obraz przedstawiający linię montażową samochodów, gdzie pracownicy wykonują kolejne zadania: montaż silnika, instalację kół i lakierowanie nadwozia.

CI/CD dla uczenia maszynowego

Czym jest GitHub Actions?

GitHub Actions tworzy serię zdefiniowanych akcji lub kroków dla projektu: checkout repozytorium, budowanie kodu, uruchamianie testów lub wdrażanie aplikacji.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD dla uczenia maszynowego

Komponenty GHA: Zdarzenie

  • Zdarzenie: określona aktywność w repozytorium wyzwalająca workflow
    • Push
    • Pull Request
    • Otwarcie zgłoszenia
CI/CD dla uczenia maszynowego

Komponenty GHA: Workflow

  • Workflow: zautomatyzowany proces uruchamiający zadania
    • Definiowany w plikach YAML
    • Wyzwalany automatycznie przez zdarzenie
      • Możliwe ręczne uruchomienie
    • Przechowywany w katalogu .github/workflows w repozytorium
    • Można definiować wiele workflow
CI/CD dla uczenia maszynowego

Komponenty GHA: Kroki i akcje

  • Kroki: jednostki pracy
    • Wykonywane kolejno, zależne od poprzedniego kroku
    • Działają na tej samej maszynie – dane mogą być współdzielone
    • Przykłady jednostek pracy
      • Skompilowana aplikacja, skrypt powłoki
      • Akcja: aplikacja specyficzna dla platformy GHA
        • Np. checkout repozytorium, komentarz do PR
CI/CD dla uczenia maszynowego

Komponenty GHA: Zadania i runnery

  • Zadanie (Job): zestaw kroków
    • Każde zadanie jest niezależne
    • Możliwe równoległe wykonanie
    • Wykonywane na maszynach obliczeniowych zwanych runnerami
CI/CD dla uczenia maszynowego

Prosty workflow GHA

Obraz przedstawiający zdarzenie push w repozytorium, które wyzwoliło workflow z jednym zadaniem uruchomionym na runnerze Ubuntu Linux. Zadanie zawiera dwa kroki: checkout repozytorium i uruchomienie kodu Python.

  • Zdarzenie: Push
  • Zadanie: działa na runnerze Ubuntu, zawiera dwa kroki
    • Akcja: Checkout repozytorium
    • Uruchomienie kodu Python
CI/CD dla uczenia maszynowego

Podsumowanie

Obraz przedstawiający komponenty typowego workflow GitHub Actions z równoległym wykonaniem zadań i sekwencyjnym wykonaniem kroków.

CI/CD dla uczenia maszynowego

Czas na ćwiczenia!

CI/CD dla uczenia maszynowego

Preparing Video For Download...