действие для локального запуска GitHub Actions#

act является инструментом, предлагаемым Nektos, который предоставляет удобный способ запуска GitHub Actions локально с использованием Docker. act предоставляет быстрый способ проверить ваши изменения на CI локально, без коммита/пуша изменений в рабочие процессы для запуска и проверки того же самого. Это приводит к быстрой обратной связи, и его совместимость как локального запускателя задач для проверки всех наших CI-задач делает его удобным инструментом.

act можно настроить локально с помощью Homebrew, Chocolatey или даже простого BASH-скрипта. Чтобы настроить его с помощью BASH-скрипта, просто выполните следующую команду в терминале:

curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

Используя Homebrew, вы можете настроить это через: brew install act.

Следующий шаг — определить пользовательский образ, который мы можем использовать для запуска наших действий локально. act предоставляет микро-, средний и крупный Docker-образ для Ubuntu GitHub runner. act еще не поддерживает изображения Windows и macOS.

При запуске act впервые мы можем определить образ, который хотим использовать для локальных прогонов CI. Конфигурация сохраняется внутри ~/.actrc файл.

В репозитории GitHub, при запуске act в первый раз, он найдет ./.github/workflows и все присутствующие рабочие процессы. Чтобы проверить задания, перечисленные как часть CI GitHub Actions, выполните следующую команду:

act -l

Он перечислит все задания, и вы сможете выбрать конкретные задания, которые хотите запустить. Если вы хотите запустить конкретное задание, введите следующую команду:

act -j <JOB_NAME>

Для запуска задания в тестовом режиме выполните следующую команду:

act -n

Для запуска задачи с подробным логированием выполните следующую команду:

act -v

Для повторного использования контейнеров в act для сохранения состояния выполните следующую команду:

act -j <JOB_NAME> --bind --reuse

Рекомендуется закомментировать специфичные для GitHub события, такие как github.repository или github.event.head_commit.message. Если вы используете переменные окружения, в вашем действии рекомендуется иметь my.secrets файл и предоставить эти переменные окружения для act выполнив следующую команду:

act --secret-file my.secrets

Если переменные окружения передаются через .env файл, используйте следующую команду:

act --env-file my.env