Введение в GitHub Actions

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

Ravi Bhadauria

Machine Learning Engineer

Что такое GitHub Actions?

  • GitHub Actions (GHA): CI/CD-платформа для автоматизации пайплайнов
  • Пайплайн: последовательность шагов, описывающих поток работы и данных
CI/CD для машинного обучения

Что такое GitHub Actions?

Изображение конвейерной сборки автомобиля: рабочие на разных этапах выполняют конкретные операции — устанавливают двигатель, монтируют колёса, окрашивают кузов.

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

Что такое GitHub Actions?

GitHub Actions создаёт серию определённых действий или шагов для программного проекта: клонирование репозитория, сборка кода, запуск тестов или развёртывание приложения.

1 https://medium.com/empathyco/applying-ci-cd-using-github-actions-for-android-1231e40cc52f
CI/CD для машинного обучения

Компоненты GHA: событие

  • Событие (Event): определённое действие в репозитории, запускающее выполнение воркфлоу
    • Push
    • Pull Request
    • Открытие issue
CI/CD для машинного обучения

Компоненты GHA: воркфлоу

  • Воркфлоу (Workflow): автоматизированный процесс, запускающий одно или несколько заданий
    • Описывается в YAML-файлах
    • Запускается автоматически событием
      • Возможен ручной запуск
    • Хранится в директории .github/workflows репозитория
    • Можно определить несколько воркфлоу
CI/CD для машинного обучения

Компоненты GHA: шаги и действия

  • Шаги (Steps): отдельные единицы работы
    • Выполняются по порядку, каждый зависит от предыдущего
    • Запускаются на одной машине, поэтому данные можно передавать между шагами
    • Примеры единиц работы
      • Скомпилированное приложение, shell-скрипт
      • Action: приложение, специфичное для платформы GHA
        • Например: клонирование репозитория, комментарий к PR
CI/CD для машинного обучения

Компоненты GHA: задания и раннеры

  • Задание (Job): набор шагов
    • Каждое задание независимо
    • Возможно параллельное выполнение
    • Выполняется на вычислительной машине — раннере (runner)
CI/CD для машинного обучения

Простой воркфлоу GHA

Схема: событие push в репозитории запускает воркфлоу с одним заданием на раннере Ubuntu Linux. Задание содержит два шага — клонирование репозитория и запуск кода Python.

  • Событие: Push
  • Задание: выполняется на раннере Ubuntu, содержит два шага
    • Action: клонирование репозитория
    • Запуск кода Python
CI/CD для машинного обучения

Всё вместе

Схема типичного воркфлоу GitHub Actions: параллельное выполнение заданий и последовательное выполнение шагов.

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

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

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

Preparing Video For Download...