Lockfile для GitHub Actions вышел в общий доступ

Lockfile для GitHub Actions вышел в общий доступ
Содержание статьи

28 октября GitHub объявил об общем доступе к файлам фиксации зависимостей для Actions. Возможность доступна на планах Free, Team и Enterprise Cloud, включая вариант с размещением данных в выбранном регионе. На Mentoring.digital разбираем, как lockfile помогает сделать запуск CI предсказуемее.

Читаемая ссылка и точный исполняемый коммит

В workflow можно сохранить понятные ссылки на ветки и теги, а запускать коммиты, записанные в lockfile. Даже если ссылка переместится, выполняться будет закреплённая версия. Расширение GitHub CLI gh actions-lock создаёт файл .github/workflows/actions.lock для действий и их транзитивных зависимостей, то есть зависимостей самих действий.

Рабочие процессы подключаются по отдельности. У подключённого workflow каждая зависимость должна присутствовать в файле фиксации. Это позволяет вводить механизм постепенно, начиная с одного понятного процесса сборки или тестирования.

Обновления и контроль согласованности

Когда Dependabot предлагает обновление версии действия для подключённого workflow, соответствующая запись lockfile обновляется в том же pull request. Дополнительная настройка для этого не требуется. Администраторы могут потребовать использование lockfile политикой Require lockfile. Предусмотрена и проверка актуальности файла без его изменения, в том числе в CI.

Для команды это удобный повод определить, кто рассматривает изменения зависимостей автоматизации. Редакция рекомендует проверять в одном запросе на изменение и новую ссылку, и обновлённую фиксацию, и результат тестового запуска. Если смотреть только на зелёный статус сборки, назначение обновления останется неясным.

Фиксация версии не заменяет проверку доверия

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

Начните с тестового workflow без рабочих секретов и необратимых внешних действий. Сохраните исходный файл, просмотрите изменения после генерации и проверьте штатный сценарий обновления зависимости. Разобрать организацию CI и границы доступа автоматизации можно с наставником по DevOps. Здесь описан выпуск функции; включение политики в проектах читателя не выполнялось.

Похожие статьи по данной теме