Woodpecker CI это форк Drone CI, который сохранил оригинальную лицензию Apache 2.0 после того, как Drone был приобретён Harness и перешёл на проприетарную модель для enterprise функций. Woodpecker унаследовал всю архитектуру и философию Drone с её декларативными YAML пайплайнами и Docker-first подходом, но развивается активным open source сообществом, что обеспечивает быстрое добавление новых функций и исправление багов без коммерческих ограничений. Развёртывание Woodpecker CI на собственном VPS даёт командам надёжную, полностью свободную CI/CD платформу с активной разработкой, без рисков изменения лицензии или внезапного коммерческого закрытия проекта. Наш VPS оптимизирован для Woodpecker с предустановленным Docker, NVMe хранилищем для быстрой работы с контейнерами и сетевой инфраструктурой с гигабитными каналами для эффективной загрузки образов из реестров.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Woodpecker CI появился как форк Drone в 2019 году после того, как разработчики Drone начали постепенно переводить функции в проприетарную Enterprise версию и в итоге продали проект Harness в 2020 году. Сообщество, обеспокоенное будущим Drone как open source проекта, создало Woodpecker для сохранения свободной CI/CD платформы. С тех пор Woodpecker значительно опередил Drone в добавлении новых функций: улучшенная поддержка Kubernetes runner, нативная интеграция с большим количеством Git серверов, расширенные возможности конфигурации matrix builds, новые типы триггеров пайплайнов. Сообщество Woodpecker активно: регулярные релизы каждые несколько месяцев, документация на нескольких языках, активные обсуждения в Matrix чате и форуме, что обеспечивает поддержку для пользователей без необходимости платить за коммерческие услуги.
Конфигурация и YAML синтаксис
Woodpecker использует YAML файл .woodpecker.yml в корне репозитория для описания пайплайна, причём синтаксис близок к оригинальному Drone что упрощает миграцию существующих пайплайнов. Каждый шаг пайплайна выполняется в отдельном Docker контейнере с указанным образом, командами и переменными окружения. Шаги могут выполняться последовательно или параллельно в зависимости от наличия зависимостей через depends_on. Дополнительные сервисы вроде PostgreSQL для интеграционных тестов запускаются как side контейнеры, доступные шагам пайплайна по имени сервиса. Условные шаги через when блок позволяют запускать определённые действия только в конкретных ветках, на pull request, по cron расписанию или при ручном триггере, что критично для разделения логики dev и production пайплайнов в одном файле конфигурации.
Runner типы и масштабирование
Woodpecker поддерживает несколько типов runner для выполнения пайплайнов в разных окружениях. Docker runner это наиболее распространённый выбор, который запускает каждый шаг пайплайна как отдельный Docker контейнер на хосте runner. Kubernetes runner создаёт поды для каждого шага в указанном namespace, что идеально для команд с существующей K8s инфраструктурой. Local runner выполняет команды напрямую на хосте без изоляции, что подходит для специфических сценариев с требованиями к нативному доступу к оборудованию. SSH runner позволяет выполнять шаги на удалённых машинах через SSH, что полезно для деплоя на staging серверы. Один Woodpecker server может работать с несколькими runner одновременно, причём runner могут быть распределены по разным VPS для масштабирования: один runner для лёгких задач линтинга, другой с мощной конфигурацией для тяжёлых сборок и тестов.