GitHub Actions

Finalizat

Când doriți să automatizați fluxurile de lucru cu GitHub, utilizați GitHub Actions.

GitHub este folosit în principal pentru a găzdui proiecte de cod. Când găzduiți codul de învățare automată într-un depozit GitHub (repo), puteți crea acțiuni GitHub pentru a construi, testa și implementa automat codul.

Notă

Pentru a utiliza GitHub Actions cu conducte Azure Machine Learning, trebuie să permiteți depozitului GitHub să acceseze spațiul de lucru Azure Machine Learning printr-o conexiune securizată.

Veți învăța cum să utilizați GitHub Actions pentru a rula o conductă Azure Machine Learning.

Creați o acțiune GitHub

Diagrama ierarhiei conductelor.

  1. Definiți un eveniment care va declanșa fluxul de lucru.
  2. Rulați fluxul de lucru, care constă din lucrări.
  3. Un loc de muncă conține unul sau mai mulți pași.
  4. Ca pas, rulați o conductă Azure Machine Learning.
  5. Conducta Azure Machine Learning este alcătuită din scripturi sau componente Azure Machine Learning.

Pentru a crea fluxul de lucru pentru GitHub Actions, definiți pașii pe care doriți să îi rulați într-un fișier YAML. În fișierul YAML, veți include:

  • Eveniment: Cum doriți să declanșați fluxul de lucru.
  • Job: Un grup de pași pe care doriți să îi executați pe un alergător. Pentru sarcinile de lucru de învățare automată, probabil că veți utiliza o mașină virtuală Ubuntu Linux .
  • Pas: Un script sau o acțiune pe care doriți să o rulați. De exemplu, o comandă CLI pentru a iniția conducta Azure Machine Learning (az ml job create).

Sfat

Aflați mai multe despre conceptele de bază utilizate în GitHub Actions.

Pentru a rula o conductă Azure Machine Learning ori de câte ori modificările sunt împinse în depozit, puteți utiliza un fișier YAML ca acesta:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

Exemplul de flux de lucru:

  1. Verificați depozitul pentru a-l face disponibil pe alergător.
  2. Instalați extensia Azure Machine Learning pentru CLI.
  3. Conectați-vă la Azure utilizând fișierul AZURE_CREDENTIALSpredefinit .
  4. Navigați la folderul src care conține tot codul de producție.
  5. Rulați conducta Azure Machine Learning.

Rulați un flux de lucru cu GitHub Actions

Să presupunem că ați creat fișierul YAML pentru a defini fluxul de lucru. Stocați fișierul YAML în directorul .github/workflows/ din depozit.

Pentru a vizualiza fluxul de lucru, navigați la fila Acțiuni GitHub a depozitului.

Captură de ecran a prezentării generale GitHub Actions.

GitHub va prelua automat toate fluxurile de lucru stocate în director..github/workflows/

Sfat

Dacă adăugați workflow_dispatch: la fluxul de lucru fișierul YAML, puteți declanșa manual fluxul de lucru să ruleze din fila Acțiuni .

Puteți declanșa fluxul de lucru cu evenimentele specificate în fișierul YAML al fluxului de lucru. În exemplu, o împingere către depozit va declanșa rularea fluxului de lucru. De fiecare dată când efectuați o modificare și împingeți comiterile în depozit (local în Visual Studio Code sau direct în GitHub), fluxul de lucru va rula.

Selectați cea mai recentă rulare pentru a inspecta în continuare dacă toți pașii s-au executat cu succes sau ce mesaje de eroare ați primit.

Captură de ecran a fluxului de lucru executat cu succes.

Atunci când un flux de lucru declanșează o conductă Azure Machine Learning, ar trebui să revizuiți și conducta rulată în spațiul de lucru Azure Machine Learning, deoarece pot apărea în continuare erori în cadrul conductei Azure Machine Learning. Orice mesaje de eroare vor putea fi vizualizate în folderul de ieșiri al execuției experimentului de conductă Azure Machine Learning.