Состоялся релиз Woodpecker CI 3.17, опенсорсного движка CI/CD для автоматизации сборок, тестирования и развёртываний. Система позволяет описывать пайплайны, запускаемые при изменении кода.

Одним из важных изменений стало автоматическое создание gRPC-секрета, используемого для связи между сервером Woodpecker и агентами. Это уменьшает объём ручной настройки и снижает риск использования слабых или отсутствующих общих секретов. В релизе также обновлён Go-модуль kin-openapi до версии 0.144, что закрывает уязвимость.

В версии 3.17 ужесточается контроль над Kubernetes-пайплайнами: конфигурация шага nodeSelector теперь управляется настройками на стороне агента. Авторы пайплайнов больше не могут произвольно направлять нагрузку на конкретные узлы Kubernetes. Теперь администраторы должны явно разрешить это через конфигурацию агента.

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

Woodpecker CI Web UI
Woodpecker CI Web UI

Для пользователей, запускающих пайплайны через Docker-бэкенд, в релизе появилась возможность назначать контейнерам произвольные профили AppArmor. Это даёт администраторам дополнительный способ ограничивать поведение контейнеров и применять к нагрузкам пайплайнов политики безопасности уровня хоста.

Обработка Kubernetes также получила более широкие внутренние улучшения. Разработчики переработали служебные функции для имён ресурсов и меток, исправили форматирование меток шагов Kubernetes и добавили в поды пайплайнов метки с информацией о доверенной ветке коммита и событии.

Ещё одно изменение делает порядок перестановок осей матрицы детерминированным. Пайплайны, созданные из одной матричной конфигурации, теперь формируются в одинаковом порядке, а не меняются от запуска к запуску. Метрики Prometheus в Woodpecker также получили метку step-type для данных уровня шагов, что предоставляет операторам дополнительный контекст при мониторинге активности пайплайнов.

Администраторы сервера теперь могут настраивать права доступа для Unix-сокета. Кроме того, переработаны структуры данных релизных и теговых пайплайнов. В рамках этих изменений переменная окружения CI_COMMIT_PRERELEASE переименована в CI_PIPELINE_RELEASE_PRE. Это может потребовать обновления пайплайнов, использующих старую переменную.

В части исправлений ошибок теперь секреты снова запрашиваются при перезапуске пайплайна, что гарантирует использование актуальных значений, а не устаревших данных. Также исправлены повторные попытки создания пайплайнов, предотвращены нулевые значения тайм-аутов, скорректированы данные шаблонов по умолчанию для поставленных в очередь пайплайнов и улучшены проверки циклов зависимостей с участием отфильтрованных необязательных зависимостей.

Также устранён ряд проблем в веб-интерфейсе, связанных с очисткой компонентов, сбросом композиции и порядком вкладок. На стороне сервера исправлена обработка пользователей и репозиториев, связанная с идентификаторами forge, и добавлен механизм исправления для пользователей, у которых forge_id оказался равен нулю после закрытия регистрации.

Подробнее см. в списке изменений.