Introduktion till GitHub Actions

CI/CD för maskininlärning

Ravi Bhadauria

Machine Learning Engineer

Vad är GitHub Actions?

  • GitHub Actions (GHA): CI/CD-plattform för att automatisera pipelines
  • Pipeline: en sekvens av steg som representerar flödet av arbete och data
CI/CD för maskininlärning

Vad är GitHub Actions?

En bild av ett bilmonteringsband med arbetare vid olika stationer, var och en utför specifika uppgifter som att montera motorn, installera hjulen och måla karossen.

CI/CD för maskininlärning

Vad är GitHub Actions?

GitHub Actions skapar en serie definierade åtgärder eller steg för ett programvaruprojekt, till exempel att checka ut ett repo, bygga koden, köra tester eller driftsätta applikationen.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD för maskininlärning

GHA-komponenter: Event

  • Event: en specifik aktivitet i ett repo som utlöser en workflow-körning
    • Push
    • Pull Request
    • Öppna ett ärende
CI/CD för maskininlärning

GHA-komponenter: Workflow

  • Workflow: automatiserad process som kör ett eller flera jobb
    • Definieras i YAML-filer
    • Utlöses automatiskt av ett event
      • Manuell körning är möjlig
    • Lagras i katalogen .github/workflows i repot
    • Flera workflows kan definieras
CI/CD för maskininlärning

GHA-komponenter: Steps och Actions

  • Steps: enskilda arbetsenheter
    • Körs i ordning, beroende av föregående steg
    • Körs på samma maskin, så data kan delas
    • Exempel på arbetsenheter
      • Kompilerad kodapplikation, skalskript
      • Action: GHA-plattformsspecifik applikation
        • T.ex. checka ut repo, kommentera på PR
CI/CD för maskininlärning

GHA-komponenter: Jobs och Runners

  • Job: en uppsättning steps
    • Varje jobb är oberoende
    • Parallell körning är möjlig
    • Körs på en beräkningsmaskin som kallas runners
CI/CD för maskininlärning

Ett enkelt GHA-workflow

Bild av ett push-event i ett repo som utlöste ett workflow där ett enda jobb körs på en Ubuntu Linux-runner. Jobbet innehåller två steg: checka ut repot och köra Python-kod.

  • Event: Push
  • Job: körs på en Ubuntu runner, har två steps
    • Action: Checka ut repo
    • Kör Python-kod
CI/CD för maskininlärning

Allt ihop

Bild av ett typiskt GitHub Actions-workflows komponenter med parallell jobbkörning och sekventiell stegkörning.

CI/CD för maskininlärning

Nu kör vi en övning!

CI/CD för maskininlärning

Preparing Video For Download...