действие для локального запуска 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