Introducere în GitHub Actions

CI/CD pentru Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Ce este GitHub Actions?

  • GitHub Actions (GHA): platformă CI/CD pentru automatizarea pipeline-urilor
  • Pipeline: o secvență de pași care reprezintă fluxul de lucru și de date
CI/CD pentru Machine Learning

Ce este GitHub Actions?

Imagine a unei linii de asamblare auto cu muncitori la diferite etape, fiecare efectuând sarcini specifice: montarea motorului, instalarea roților și vopsirea caroseriei.

CI/CD pentru Machine Learning

Ce este GitHub Actions?

GitHub Actions definește o serie de acțiuni sau pași pentru un proiect software, precum checkout repository, compilare cod, rulare teste sau implementare aplicație.

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

Componente GHA: Eveniment

  • Eveniment: o activitate specifică într-un repository care declanșează un workflow
    • Push
    • Pull Request
    • Deschiderea unui issue
CI/CD pentru Machine Learning

Componente GHA: Workflow

  • Workflow: proces automatizat care rulează unul sau mai multe job-uri
    • Definit în fișiere YAML
    • Declanșat automat de un eveniment
      • Rulare manuală posibilă
    • Stocat în directorul .github/workflows din repository
    • Se pot defini mai multe workflow-uri
CI/CD pentru Machine Learning

Componente GHA: Pași și Acțiuni

  • Pași: unități individuale de lucru
    • Executați în ordine, depind de pasul anterior
    • Rulează pe aceeași mașină, datele pot fi partajate
    • Exemple de unități de lucru
      • Aplicație compilată, script shell
      • Acțiune: aplicație specifică platformei GHA
        • Ex.: checkout repo, comentariu pe PR
CI/CD pentru Machine Learning

Componente GHA: Job-uri și Runnere

  • Job: set de pași
    • Fiecare job este independent
    • Execuție paralelă posibilă
    • Executat pe mașina de calcul numită runner
CI/CD pentru Machine Learning

Un workflow GHA simplu

Imagine a unui eveniment push într-un repository care a declanșat un workflow cu un singur job rulând pe un runner Ubuntu Linux. Job-ul conține doi pași: checkout repo și rulare cod Python.

  • Eveniment: Push
  • Job: rulează pe runner Ubuntu, are doi pași
    • Acțiune: Checkout Repo
    • Rulare cod Python
CI/CD pentru Machine Learning

Privire de ansamblu

Imagine a componentelor unui workflow tipic GitHub Actions, ilustrând execuția paralelă a job-urilor și execuția secvențială a pașilor.

CI/CD pentru Machine Learning

Să exersăm!

CI/CD pentru Machine Learning

Preparing Video For Download...