Запуск кода репозитория

CI/CD для машинного обучения

Ravi Bhadauria

Machine Learning Engineer

Модель общего репозитория

  • Несколько разработчиков работают в одном репозитории
  • Для связанных задач создаются ветки функций
    • Открываются pull request'ы
    • Код проверяется, вносятся предложения
    • Ветка сливается в ветку main
  • Проверки CI/CD повышают качество кода

Схема общего репозитория, в который вносят вклад несколько разработчиков

CI/CD для машинного обучения

Создание ветки функции

Главная страница репозитория с выделенной вкладкой веток

Страница веток с выделенной вкладкой создания новой ветки

CI/CD для машинного обучения

Создание ветки функции

Главная страница репозитория с отображением активной ветки функции

CI/CD для машинного обучения

Добавление кода в репозиторий

Сохраните как hello_world.py в ветке

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 для машинного обучения

Настройка события рабочего процесса

  • Укажите целевую ветку для события pull request
on:
  pull_request:
    branches: [ "main" ]
CI/CD для машинного обучения

Синтаксис действий

steps:
  - name: My Action 
    uses: <org_or_user_name>/<reponame>@<version_number>
    with:
      action-argument: value
CI/CD для машинного обучения

Настройка шагов и действий рабочего процесса

  • Получение репозитория на шаге задания
steps:
  - name: Checkout 
    uses: actions/checkout@v3
  • Настройка окружения Python
steps:
  - name: Setup Python
    uses: actions/setup-python@v4
    with:
      python-version: 3.9
CI/CD для машинного обучения

Собираем всё вместе

  • Рабочий процесс запускается при pull request в main
  • Задание build содержит три шага
    • Checkout получает репозиторий
    • Setup Python настраивает окружение Python
    • Run Python script запускает файл 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 для машинного обучения

Создание PR и запуск рабочего процесса

Страница pull request с запущенным рабочим процессом

CI/CD для машинного обучения

Просмотр журналов рабочего процесса

Страница журналов рабочего процесса с шагом запуска Python-скрипта

CI/CD для машинного обучения

Давайте потренируемся!

CI/CD для машинного обучения

Preparing Video For Download...