>_ IzzyLab

Практическое задание

GitHub Actions: зависимость джобов

средне

В /root/ci.yml опиши workflow с двумя джобами: build и deploy. deploy должен запускаться только после успешного build (через needs).

Что потренируешь:
  • github actions
  • workflow
  • needs
  • зависимости джобов
  • yaml

Разбор темы

По умолчанию все job'ы в jobs: GitHub Actions стартуют параллельно — порядок их описания в файле ничего не значит. Чтобы выстроить очередь, у зависимого job'а объявляют needs со ссылкой на id другого job'а (ключ под jobs:, а не его человекочитаемый name:); GitHub строит граф зависимостей и не запустит зависимый job, пока предшественник не завершится успешно. Если предшественник упал, зависимый по умолчанию помечается skipped — это защита от деплоя сломанной сборки, переопределяемая через if: always().

Что проверяется

  1. YAML синтаксически валиден
  2. deploy зависит от build (needs)

Как это выглядит