Woodpecker CI
A light CI engine that runs pipelines in containers from a YAML file
Alternative toGitHub Actions
Woodpecker runs your build, test and deploy steps in containers whenever you push to a git forge such as Forgejo, Gitea, GitHub or GitLab. It is a community fork of Drone under Apache-2.0, with a small server and separate agents.
Best for when
- you host your own git forge and want CI that plugs into it
- you want pipelines in YAML with each step in its own container
- you find Jenkins too heavy for a home lab or small team
Watch out for
- agents execute code from repositories, so untrusted pull requests are a real risk
- its plugin ecosystem is much smaller than GitHub Actions
- build caches and images fill agent disks unless you clean them up
Pipelines next to your code
You add a .woodpecker folder or file to a repository, list steps with a container image and the commands to run, and Woodpecker runs them on every push or pull request. Each step is a fresh container, so the build environment is whatever image you choose, not whatever happens to be installed on the server.
It suits people who host their own git forge and want CI that feels like a simpler GitHub Actions, without a heavy system such as Jenkins. Plugins are just container images, so a deploy or notification step is usually one image and a few settings.
What running it involves
The server is light and stores its state in SQLite, PostgreSQL or MySQL. The agents do the work, so their CPU, memory and disk depend on what you build, and image caches can fill disks quickly, so prune them. Back up the server database and its secrets.
Agents run arbitrary code from repositories through Docker, which is close to root on the agent machine. Do not run pipelines for untrusted pull requests without approval, keep secrets scoped to the repositories that need them, and put agents on a machine you can afford to rebuild.