Разработка и эксплуатация

Инструменты для CI/CD

Сломанный пайплайн обычно сводится к одной из немногих причин: YAML workflow со сбитым отступом, условное выражение, которое вычисляется не так, как ожидалось, расписание cron, чьи пять полей значат не то, что кажется на первый взгляд, или версия, которая должна выводиться из сообщений коммитов, а сейчас выбирается вручную. Эти инструменты проверяют YAML и выражения до того, как вы отправите коммит и будете ждать упавшего запуска.

Валидатор GitHub Actions и редактор GitLab CI проверяют два самых распространённых формата пайплайнов, находя ошибки в правилах и include раньше, чем о них сообщит сама платформа после старта запуска. Оценка выражений GitHub Actions вычисляет условия на тестовых переменных контекста — это единственный способ проверить выражение if: без реального запуска workflow. Для расписаний генератор cron-выражений показывает даты запусков по пятиполевому синтаксису, cron Jenkins объясняет диапазон хеша H, а генератор чейнджлога из коммитов превращает коммиты в версию, которую они подразумевают.

6 инструментов

Вопросы об инструментах категории «CI/CD»

Как проверить выражение if: в GitHub Actions до запуска workflow?

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

Что означает H в выражении cron Jenkins?

H — это хеш, а не фиксированное значение: Jenkins выбирает значение в заданном диапазоне на основе имени задачи, чтобы сборки не запускались все одновременно. Cron Jenkins строит такие выражения и объясняет получившийся диапазон распределения хеша.

Как версия рассчитывается по сообщениям коммитов?

При использовании conventional commits коммит с fix: повышает патч-версию, feat: — минорную, а breaking change — мажорную, исходя из префиксов типа коммита с прошлого релиза. Генератор чейнджлога из коммитов читает сообщения и вычисляет итоговое повышение версии и чейнджлог.