Woodpecker CI, лёгкая self-hosted CI/CD-платформа, совместимая с популярными Git-сервисами вроде GitHub, GitLab, Gitea и Forgejo, выпустила версию 3.18.

Пользователям Woodpecker нужно учесть, что в версии 3.18 есть миграция базы данных, затрагивающая хранение логов. Миграция может занять время на установках с большим количеством сохранённых строк логов. Поэтому перед обновлением администраторам стоит создать резервную копию и предусмотреть дополнительное время простоя, пока миграция не завершится.

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

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

Бэкенд Kubernetes также получил возможность отключать настройку имени runtime class, а интеграция с GitLab теперь использует полный путь группы в качестве идентификатора группы.

Улучшена и обработка пайплайнов. Для запущенных вручную пайплайнов теперь можно указать произвольное сообщение, чтобы объяснить, зачем был запущен конкретный прогон. Woodpecker также требует уникальных имён для сервисов и шагов при использовании пайплайнов на основе DAG.

Ещё одно новое ограничение не позволяет агентам с несовместимой версией протокола gRPC подключаться к серверу Woodpecker. Агенты также стали устойчивее к временным сбоям связи: попытки подключения теперь повторяются после ошибок DeadlineExceeded, а не только в случае состояния Unavailable, как раньше.

Для инсталляций, подключённых к нескольким сервисам хостинга исходного кода, Woodpecker 3.18 позволяет отдельно для каждой forge настраивать, какие организации могут пользоваться сервисом. Пользователи Kubernetes также могут задать домен кластера, а не полагаться на значение по умолчанию.

Дополнительно Woodpecker теперь отклоняет некорректные состояния workflow, сортирует файлы workflow по имени и определяет предыдущие и последние пайплайны по номеру пайплайна, а не по внутренним идентификаторам базы данных.

Поддержка Windows тоже получила несколько исправлений и улучшений. Локальный бэкенд теперь включает внутреннюю команду для декодирования данных Base64, а проблема, из-за которой несколько командлетов PowerShell не могли корректно выполняться, устранена.

В релиз также вошло множество обновлений зависимостей и служебных компонентов, включая новые версии Git-плагина Woodpecker, клиента GitLab API, библиотеки Docker CLI, компонентов protobuf и различных frontend-пакетов.

Подробнее в changelog.