← Ко всем open source проектам

act

nektos/act

act — CLI-инструмент для локального запуска GitHub Actions, чтобы быстрее проверять сценарии CI до отправки изменений.

Форки 1,951
Автор nektos
Язык Go
Лицензия MIT
Обновлено 2026-06-11

Что это такое

act — CLI-инструмент для локального запуска GitHub Actions. Он нужен, когда хочется проверить сценарии CI до отправки изменений, сократить цикл ожидания CI и быстрее увидеть ошибки в job, env или steps.

Репозиторий nektos/act существует с 2019 года. Основной язык — Go, лицензия MIT, сайт — nektosact.com. Проект эмулирует GitHub Actions runner локально настолько, насколько это возможно для выбранного окружения.

Как это работает

act читает файлы GitHub Actions из `.github/workflows`, выбирает событие и запускает задание локально. Это удобно для быстрой проверки, но не является идеальной копией исполнителя в инфраструктуре GitHub.

Локальная проверка сценария GitHub Actions

Пример показывает типичный сценарий: посмотреть доступные задания и запустить сценарий локально перед отправкой изменений.

Язык: Bash
act -l
act pull_request

Где он полезен

act полезен для библиотек, CLI-проектов, небольших сервисов и репозиториев, где CI падает из-за мелких ошибок YAML, секретов, матрицы сборки или шагов настройки.

История act понятна любому, кто ждал удаленный CI ради ошибки в отступе YAML. GitHub Actions удобны, но каждая проверка через сервер занимает время: нужно отправить коммит, дождаться очереди, открыть лог и только потом увидеть, что сломался простой шаг установки зависимостей.

act сокращает этот цикл: часть сценария можно прогнать рядом с кодом, до отправки ветки. Это особенно удобно для библиотек и небольших сервисов, где сборка не требует всей внутренней инфраструктуры компании.

Ограничение важно держать в голове: локальный запуск не обязан совпадать с GitHub на сто процентов. Образы, секреты, сетевые сервисы, кэш и права доступа могут отличаться, поэтому act хорошо ловит ранние ошибки, но не заменяет финальную проверку в настоящем CI.

Детали проекта

act полезен именно в том месте, где GitHub Actions уже стал частью разработки, но удаленная проверка тормозит обратную связь. Локальная команда не заменяет CI, зато позволяет поймать очевидные ошибки раньше: неправильное имя шага, отсутствующую зависимость, неудачный скрипт установки.

Проект использует локальное окружение для запуска сценариев, поэтому результат зависит от образов, доступных сервисов и настроек компьютера. Это нужно понимать заранее: если на GitHub используется специфическая инфраструктура, локальная проверка будет приближением, а не копией.

Самый приятный сценарий — разработка действий и сборочных сценариев. Когда файл в `.github/workflows` часто меняется, act дает быстрый цикл: изменить YAML, запустить событие локально, посмотреть лог, исправить, повторить. Без этого каждая итерация требует отправки изменений.

Инструмент также полезен в учебных проектах и библиотеках с открытым кодом. Участник может проверить часть CI до pull request, а сопровождающий получает меньше падений из-за простых ошибок в окружении. Это не гарантия успеха, но хорошая санитарная проверка.

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

Сильные стороны и ограничения

Сильная сторона — короткая обратная связь. Ограничение — различия окружения: секреты, сервисы, образы и поведение, зависящее от GitHub нужно проверять и на настоящем CI.