Uruchamianie kodu repozytorium

CI/CD dla uczenia maszynowego

Ravi Bhadauria

Machine Learning Engineer

Model współdzielonego repozytorium

  • Wielu współpracowników pracuje na tym samym repozytorium
  • Tworzone są gałęzie funkcji/tematyczne
    • Otwierane są pull requesty
    • Kod jest przeglądany i sugerowane są zmiany
    • Kod gałęzi jest scalany z gałęzią main
  • Kontrole CI/CD poprawiają jakość kodu

Obraz modelu współdzielonego repozytorium, w którym wielu programistów wnosi wkład do jednego repozytorium

CI/CD dla uczenia maszynowego

Tworzenie gałęzi funkcji

Obraz strony głównej repozytorium z wyróżnioną zakładką gałęzi

Obraz strony gałęzi z wyróżnioną zakładką nowej gałęzi

CI/CD dla uczenia maszynowego

Tworzenie gałęzi funkcji

Obraz strony głównej repozytorium pokazujący aktywną gałąź funkcji

CI/CD dla uczenia maszynowego

Dodawanie kodu do repozytorium

Zapisz jako hello_world.py w gałęzi

import datetime

def main():
    print("Hello, World!")

    # Get the current time and print it
    current_time = datetime.datetime.now()
    print("Current time:", current_time)

if __name__ == "__main__":
    main()
CI/CD dla uczenia maszynowego

Konfiguracja zdarzenia wyzwalającego

  • Określ gałąź docelową dla zdarzenia pull request
on:
  pull_request:
    branches: [ "main" ]
CI/CD dla uczenia maszynowego

Składnia akcji

steps:
  - name: My Action 
    uses: <org_or_user_name>/<reponame>@<version_number>
    with:
      action-argument: value
CI/CD dla uczenia maszynowego

Konfiguracja kroków i akcji przepływu

  • Pobieranie repozytorium w kroku zadania
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Konfiguracja środowiska Python
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD dla uczenia maszynowego

Łączymy wszystko razem

  • Przepływ wyzwalany jest przez pull request do main
  • Zadanie build zawiera trzy kroki
    • Checkout pobiera repozytorium
    • Setup Python konfiguruje środowisko Python
    • Run Python script uruchamia plik Python
name: PR

on:
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.9
      - name: Run Python script
        run: |
          echo hello_world.py 
          python hello_world.py
CI/CD dla uczenia maszynowego

Tworzenie PR i wyzwalanie przepływu

Obraz strony pull requesta pokazujący uruchomiony przepływ

CI/CD dla uczenia maszynowego

Przeglądanie logów przepływu

Obraz strony logów przepływu pokazujący krok skryptu Python wśród innych kroków

CI/CD dla uczenia maszynowego

Czas na ćwiczenia!

CI/CD dla uczenia maszynowego

Preparing Video For Download...