Как пользоваться: Валидатор GitHub Actions
- Вставьте файл workflow, откройте его или загрузите пример.
- Ошибки YAML показываются первыми, с номерами строк.
- Затем проверяются триггеры, jobs, steps,
needs, выражения, расписания cron и permissions. - Проверки лучших практик отмечают устаревшие версии экшенов, сторонние экшены без закреплённого коммита, отсутствующие таймауты и риски внедрения скриптов.
Частые ошибки в workflow, которые находит валидатор
- Неизвестные события или ключи — опечатки вроде
pull-requestвместоpull_requestилиrun-onвместоruns-on. - Сломанный граф jobs —
needs, ссылающийся на несуществующий job, или jobs, которые зависят друг от друга по кругу. - Steps с одновременно заданными или, наоборот, пропущенными
usesиrun, а также ссылки вusesбез версии (@v4). - Выражения — незакрытые
${{ }}, неизвестные контексты и ссылки на несуществующие выходы шагов. - Некорректный cron — расписание должно содержать пять полей; инструмент объясняет, когда запуск произойдёт (в UTC).
- Устаревшие команды, например
::set-outputи::save-state, которые заменены на$GITHUB_OUTPUTи$GITHUB_STATE.
Проверки безопасности
Если напрямую вставлять ${{ github.event.pull_request.title }}, текст из тел issue или имена веток внутрь run:, любой, кто откроет pull request, сможет внедрить shell-команды. Передавайте такие данные через переменную окружения. Валидатор также отмечает pull_request_target в сочетании с чекаутом кода из PR, отсутствующий permissions (тогда токен получает широкие права по умолчанию) и сторонние экшены, закреплённые за изменяемым тегом, а не за SHA коммита.
Создать новый workflow можно с помощью генератора GitHub Actions, разобрать расписание в генераторе cron-выражений, а другой YAML проверить в валидаторе YAML.
Также ищут как: проверка workflow github, actionlint онлайн, проверка yaml github actions, github actions workflow проверка, проверить github workflow онлайн.
Инструменты, которые хорошо сочетаются с Валидатор GitHub Actions
- Валидатор YAML для Kubernetes — Вставьте Deployments, Services, Ingresses, ConfigMaps или целый файл с несколькими документами.
- Шпаргалка Git — Все команды Git, которые вы используете каждый день, и те, что нужны, когда что-то пошло не так, — с пояснением в одну строку.
- Генератор YAML для Kubernetes — Укажите имя приложения, образ и порт, и вы получите готовый к продакшену YAML для Kubernetes: Deployment с пробами, лимитами ресурсов и защищённым security context, а также выбранные вами Service, Ingress с TLS, ConfigMap, Secret и HorizontalPodAutoscaler — всё в одном файле, готовом для kubectl apply.
- Генератор systemd service — Запускайте приложение как полноценный сервис Linux, который стартует при загрузке и перезапускается после сбоя.
Часто задаваемые вопросы
Это то же самое, что actionlint?
Проверяются ли reusable workflows и composite actions?
on: workflow_call и jobs, которые вызывают reusable workflows (uses: на уровне job). Файлы action.yml для composite actions пока не проверяются.Зачем закреплять экшены за SHA коммита?
@v4 может переместить владелец экшена или злоумышленник, взломавший его. Полный SHA коммита не меняется, поэтому ваш workflow выполняет именно тот код, который вы проверили.