Github Actions изматывает разработчиков (как описано в части 1 этой статьи (откроется в новом окне) ), но можно и по-другому. Buildkite показывает, каким должен быть CI: возможно, не обязательно приносящим радость – в CI вообще нет ничего радостного –, но, по крайней мере, терпимым. Инструмент выполняет свою задачу, вместо того чтобы бороться с разработчиками.
Просмотрщик логов, который не перегружает браузер
Просмотрщик логов Buildkite — это просто веб-страница, которая показывает логи и не падает. Конечно, планка низкая, но Github Actions умудряется её не взять, а рухнуть лицом в грязь, встать, поскользнуться и каким-то образом ещё и поджечь эту грязь.
Отображение терминального вывода в Buildkite, напротив, превосходно. Логи сборок выглядят как вывод терминала, потому что они на самом деле и есть вывод терминала. ANSI-цвета работают. Замысловатое форматирование фреймворков для тестирования остаётся нетронутым. Вам не нужно пялиться на веб-интерфейс, который проглатывает escape-последовательности и отображает их как мешанину из символов.
Это звучит банально, но это не так. Разработчики читают логи сборок бесконечно. Опыт чтения для них так же важен, как удобный стул. Насколько это важно, понимаешь только после того, как просидишь шесть часов на плохом стуле, и твоя спина официально подаст жалобу.
Луч света после долгой тьмы
С помощью аннотаций шаги сборки могут отображать объёмные Markdown-выводы (сводки ошибок тестов, отчёты о покрытии, ссылки на развёртывание) прямо на странице сборки. Никому не нужно рыться в выводе логов, чтобы найти то, что нужно, – информация приходит напрямую.
После многих лет борьбы со сворачиваемыми и разворачиваемыми группами логов Github Actions и вопросами о том, какой из 17 вложенных уровней содержит фактическое сообщение об ошибке, это ощущается как выход из пещеры на солнечный свет.
А отладка? Отладка CI через Buildkite не является удовольствием; это одно из неизбежных страданий нашего ремесла. Но поскольку агент работает на вашей собственной инфраструктуре, вы можете подключиться к машине по SSH. Вы можете увидеть, что на самом деле происходит, и воспроизвести окружение локально, потому что вы сами его настроили. Вы всё ещё смертны, но теперь у вас хотя бы есть инструменты.