Woodpecker CI es un sistema open source ligero de integración continua y entrega continua que facilita automatizar builds, pruebas y despliegues. Tradicionalmente las pipelines se definen en YAML pero gracias a WCCS ahora es posible escribir la configuración en Starlark y convertirla dinámicamente a YAML en tiempo de ejecución, ganando flexibilidad y capacidad de programación en la definición de pipelines.

Resumen de alto nivel de la integración que veremos: desplegar servidor y agentes de Woodpecker con docker compose, exponer el servicio con Traefik para HTTPS, autenticar con GitHub mediante OAuth, habilitar repositorios, y conectar WCCS para convertir archivos .woodpecker.star a YAML en cada ejecución.

Configuración del servidor y del agente: en docker compose se crean dos servicios principales. El servidor usa la imagen oficial de woodpecker server y requiere variables de entorno para ajustar el host, el modo de autenticación con GitHub, el secreto compartido con los agentes y el endpoint del servicio de conversión de configuraciones. El agente se ejecuta en otro contenedor con acceso al socket de Docker para lanzar contenedores de build; se configura con la dirección del servidor y el mismo secreto compartido.

Traefik como proxy inverso y terminación TLS: Traefik se despliega en su propio contenedor, escucha en los entrypoints 80 y 443 y puede gestionar certificados letsencrypt automáticamente. Con Traefik se añaden etiquetas a la definición del servicio de Woodpecker para exponerlo en HTTPS usando reglas Host y middlewares para redirigir HTTP a HTTPS, garantizando comunicaciones seguras entre usuarios, GitHub y el servidor CI.

Autenticación con GitHub: registre una nueva aplicación OAuth en GitHub indicando como callback la URL de autorización de su servidor Woodpecker. Copie el Client ID y el Client Secret al archivo de variables de entorno del servidor Woodpecker. Con esto los usuarios podrán iniciar sesión en la interfaz web con sus credenciales de GitHub y Woodpecker podrá agregar los webhooks necesarios a los repositorios habilitados.

Habilitar un repositorio: desde la interfaz de Woodpecker seleccione Add Repository y habilite el repositorio deseado. Woodpecker añadirá automáticamente los webhooks y escuchará eventos como push y pull request para disparar builds. Para una primera prueba se puede añadir un pipeline YAML simple en el repositorio con el nombre .woodpecker.yml que ejecute un comando de prueba y crear un pull request para verificar que todo está integrado correctamente.

Integración con WCCS para soportar Starlark: WCCS es un servicio ligero que recibe una petición firmada por Woodpecker con la información del build y del repositorio y devuelve la pipeline en YAML resultante de compilar un archivo .woodpecker.star. Despliegue WCCS mediante su imagen oficial y monte la clave pública que se obtiene desde el endpoint publico del servidor Woodpecker que sirve la clave para verificar firmas HTTP.

Generación y uso de la clave pública: al iniciar Woodpecker por primera vez se genera una clave privada ed25519 y su correspondiente clave pública está disponible en la ruta api/signature/public-key del servidor. Descargue esa clave y colóquela en la ruta keys/public.pem que irá montada en el contenedor de WCCS para permitir la verificación de las peticiones firmadas.

Conectar WCCS y configurar la ruta de pipeline: en las variables del servidor Woodpecker configure el endpoint de servicio de configuración con algo similar a http://wccs:8080/ciconfig. Además, en la configuración del repositorio dentro de Woodpecker ajuste el path de configuración de pipeline por defecto a .woodpecker.star para que Woodpecker solicite la conversión a WCCS cuando se dispare un build.

Ejemplo de pipeline en Starlark explicado: en un archivo .woodpecker.star puede definir una función main que devuelva una lista de jobs. Cada job incluye nombre, pasos, imagen y condiciones when para filtrar por evento y rama. Por ejemplo, un pipeline sencillo puede definir un job llamado hello con un step que use la imagen alpine y ejecute un eco para verificar la integración. Al crear un pull request Woodpecker enviará la petición a WCCS, WCCS validará la firma y devolverá el YAML resultante que se ejecutará en los agentes.

Buenas prácticas y seguridad: asegure los secretos del agente y los tokens de OAuth, limite el acceso a la interfaz administrativa, y use Traefik para gestionar certificados TLS automáticamente. Mantenga actualizadas las imágenes de los contenedores y controle los permisos de los runners para minimizar la superficie de ataque.

En Q2BSTUDIO ofrecemos experiencia práctica en diseñar e implementar pipelines CI CD a medida, integrando soluciones como Woodpecker, Traefik y servicios de conversión como WCCS para conseguir flujos de trabajo reproducibles, seguros y extensibles. Somos especialistas en desarrollo de software a medida y aplicaciones a medida y podemos ayudarle a automatizar todo su ciclo de vida de entrega, desde repositorio a producción.

Además de integración continua, en Q2BSTUDIO trabajamos con servicios cloud aws y azure para desplegar infraestructuras escalables y seguras, y ofrecemos servicios de ciberseguridad y pentesting para proteger sus pipelines y sus aplicaciones. Si su proyecto requiere capacidades de inteligencia artificial, agentes IA o soluciones con power bi para inteligencia de negocio, contamos con equipos que integran modelos y visualizaciones que generan valor real para las empresas.

Si quiere conocer ejemplos de aplicaciones y plataformas que podemos desarrollar, visite nuestra página de desarrollo de aplicaciones a medida y si le interesa explotar la inteligencia artificial en su organización, consulte nuestra oferta de inteligencia artificial para empresas. En Q2BSTUDIO combinamos experiencia en software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, y soluciones de inteligencia de negocio para ofrecer proyectos integrales y alineados con los objetivos de negocio.

Conclusión: escribir pipelines en Starlark y convertirlos con WCCS aporta lógica, reutilización y mayor expresividad a sus CI pipelines. Al combinar Woodpecker CI con Traefik y buenas prácticas de seguridad puede disponer de una plataforma CI CD robusta y flexible que encaje con las necesidades de proyectos modernos y exigentes.