Back to Blog
team@tinypod.app

Building a Self-Hosted CI/CD Pipeline with Woodpecker CI

Woodpecker CI is a lightweight, container-native CI/CD system. Simple YAML pipelines, Gitea/GitHub integration, and minimal resource usage.

woodpeckerci-cddevtoolsautomation

What Is Woodpecker CI?


Woodpecker CI is a community fork of Drone CI. It's a simple, container-native CI/CD system that integrates with Gitea, GitHub, GitLab, and Forgejo.


Why Woodpecker?


  • Simple YAML pipeline syntax
  • Every step runs in a container (isolated, reproducible)
  • Lightweight server (50 MB RAM)
  • Gitea Actions alternative with more flexibility
  • Plugin ecosystem

  • Pipeline Example


    yaml

    pipeline:

    test:

    image: node:20

    commands:

  • npm install
  • npm test

  • build:

    image: node:20

    commands:

  • npm run build

  • deploy:

    image: appleboy/drone-ssh

    settings:

    host: your-server.com

    script:

  • cd /app && git pull && docker compose up -d

  • Features


  • Multi-pipeline support
  • Matrix builds
  • Secrets management
  • Cron scheduling
  • Branch filtering
  • Pull request testing
  • Build badges

  • Woodpecker vs Gitea Actions vs Jenkins


  • Woodpecker: Simple, container-native, lightweight
  • Gitea Actions: GitHub Actions compatible, built into Gitea
  • Jenkins: Enterprise, complex, resource-heavy

  • Deployment


    1. Deploy Woodpecker server on TinyPod

    2. Deploy Woodpecker agent(s)

    3. Connect to your Git forge

    4. Add .woodpecker.yml to your repos


    Resources: Server 1 CPU, 256 MB RAM. Agent 1 CPU, 512 MB RAM.