Funkcja GitHub Actions

Ukończone

Jeśli chcesz zautomatyzować przepływy pracy za pomocą usługi GitHub, użyj funkcji GitHub Actions.

Usługa GitHub jest używana głównie do hostowania projektów kodu. Podczas hostowania kodu uczenia maszynowego w repozytorium GitHub (repozytorium) możesz utworzyć funkcję GitHub Actions w celu automatycznego kompilowania, testowania i wdrażania kodu.

Uwaga

Aby używać funkcji GitHub Actions z potokami usługi Azure Machine Learning, musisz zezwolić repozytorium GitHub na dostęp do obszaru roboczego usługi Azure Machine Learning za pośrednictwem bezpiecznego połączenia.

Dowiesz się, jak używać funkcji GitHub Actions do uruchamiania potoku usługi Azure Machine Learning.

Tworzenie akcji usługi GitHub

Diagram hierarchii potoków.

  1. Zdefiniuj zdarzenie , które wyzwoli przepływ pracy.
  2. Uruchom przepływ pracy, który składa się z zadań.
  3. Zadanie zawiera co najmniej jeden krok.
  4. W ramach kroku uruchom potok usługi Azure Machine Learning.
  5. Potok usługi Azure Machine Learning składa się ze skryptów lub składników usługi Azure Machine Learning.

Aby utworzyć przepływ pracy dla funkcji GitHub Actions, zdefiniuj kroki, które chcesz uruchomić w pliku YAML. W pliku YAML uwzględnisz następujące elementy:

  • Zdarzenie: Jak chcesz wyzwolić przepływ pracy.
  • Zadanie: grupa kroków, które chcesz wykonać w module uruchamiającym. W przypadku obciążeń uczenia maszynowego prawdopodobnie użyjesz maszyny wirtualnej z systemem Ubuntu Linux .
  • Krok: skrypt lub akcja, którą chcesz uruchomić. Na przykład polecenie interfejsu wiersza polecenia w celu zainicjowania potoku usługi Azure Machine Learning (az ml job create).

Aby uruchomić potok usługi Azure Machine Learning za każdym razem, gdy zmiany są wypychane do repozytorium, możesz użyć pliku YAML w następujący sposób:

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

Przykładowy przepływ pracy będzie:

  1. Zapoznaj się z repozytorium, aby udostępnić je w module uruchamiającym.
  2. Zainstaluj rozszerzenie usługi Azure Machine Learning dla interfejsu wiersza polecenia.
  3. Zaloguj się do platformy Azure przy użyciu wstępnie AZURE_CREDENTIALSzdefiniowanego elementu .
  4. Przejdź do folderu zawierającego src cały kod produkcyjny.
  5. Uruchom potok usługi Azure Machine Learning.

Uruchamianie przepływu pracy za pomocą funkcji GitHub Actions

Załóżmy, że utworzono plik YAML w celu zdefiniowania przepływu pracy. Plik YAML jest przechowywany w .github/workflows/ katalogu w repozytorium.

Aby wyświetlić przepływ pracy, przejdź do karty Funkcji GitHub Actions repozytorium.

Zrzut ekranu przedstawiający przegląd funkcji GitHub Actions.

Usługa GitHub automatycznie pobiera wszystkie przepływy pracy przechowywane w .github/workflows/ katalogu.

Napiwek

Jeśli dodasz workflow_dispatch: do pliku YAML przepływu pracy, możesz ręcznie wyzwolić przepływ pracy do uruchomienia z karty Akcje .

Przepływ pracy można wyzwolić za pomocą zdarzeń określonych w pliku YAML przepływu pracy. W tym przykładzie wypychanie do repozytorium spowoduje wyzwolenie przepływu pracy do uruchomienia. Za każdym razem, gdy wprowadzisz zmianę i wypchniesz zatwierdzenia do repozytorium (lokalnie w programie Visual Studio Code lub bezpośrednio w usłudze GitHub), przepływ pracy zostanie uruchomiony.

Wybierz najnowszy przebieg, aby dokładniej sprawdzić, czy wszystkie kroki zostały wykonane pomyślnie, czy jakie komunikaty o błędach zostały odebrane.

Zrzut ekranu przedstawiający pomyślnie wykonany przepływ pracy.

Gdy przepływ pracy wyzwala potok usługi Azure Machine Learning, należy również przejrzeć przebieg potoku w obszarze roboczym usługi Azure Machine Learning, ponieważ błędy mogą nadal występować w potoku usługi Azure Machine Learning. Wszystkie komunikaty o błędach będą widoczne w folderze outputs przebiegu eksperymentu potoku usługi Azure Machine Learning.