Woodpecker
Woodpecker is a simple CI engine with great extensibility. Woodpeckers source code is OpenSource you can contribute to help evolving the project (under license Apache 2.0). Woodpecker is the Continuous Integration (CI) part of the h8lio factory and acts as the link between the sources and the OCI images registry.
Woodpecker is a community fork of the Drone CI system since Drone has been acquired by Harness
Reference
- Instance: https://ci2.h8l.io (will also be https://ci.h8l.io when Drone will be gone)
- Site: https://woodpecker-ci.org/
- Sources: https://github.com/woodpecker-ci/woodpecker
- Documentation: https://woodpecker-ci.org/docs/intro
- Plugins: https://woodpecker-ci.org/plugins
- Discussion: issue #7
Drone Migration
Drone CI was one of the first CI system integrated in the h8lio factory. Since it has been acquired by Harness they updated the license from Apache 2.0 to a dual OSS/Enterprise licence.
Until recently (2021) we matched their Enterprise Edition Free Edition but they changed their builds count quota (from 15000 in 2020 to 5000 in 2022). Also the Drone CI OSS build doesn’t work (for now) and gets less and less functionalities.
To share your Drone migration experience we open the issue #7
Migrate your repositories
To help you to easily migrate your service’s repository, we developed and integrate a dedicated function to the h8l.io dashboard. With a single action button h8lio is doing the migration for you:
- Disable your Drone repository on https://ci.h8l.io
- Enable Woodpecker CI https://ci2.h8l.io
- Setup and enable the Woodpecker Repository
- Register the https://sources.h8l.io webhook
- Add the default secrets to connect and push the OCI images to your private registry
Steps to migrate your repository:
- Sign in to the h8l.io dashboard
- Go to your domain
- Click on the service to migrate
- If the Drone integration is enable on your service you should see the “Woodpecker migration” menu button:
Once the migration is done, the service’s integration should redirect you to https://ci2.h8l.io and you should see the Woodpecker icon appeared in the factory tools links beside the Drone one:
Before to trigger your first Woodpecker build, you have to migrate your existing service’s Drone pipeline.
Migrate your pipelines
References:
- Pipeline Syntax
- Workflow (example)
- Drone Migration Tool (useful for the complex pipelines)
Simple conversion:
The example below shows the differences between a .drone.yml
and a .woodpecker.yml
.
.drone.yml | .woodpecker.yml |
---|---|
steps: image: maven:3-openjdk-18-slim commands: - mvn verify -B -V image: plugins/docker settings: auto_tag: true registry: registry.h8l.io repo: registry.h8l.io/domain/service username: from_secret: REGISTRY_USERNAME password: from_secret: REGISTRY_PASSWORD | steps: build: image: maven:3-openjdk-18-slim commands: - mvn verify -B -V deploy: image: plugins/docker settings: auto_tag: true registry: registry.h8l.io repo: registry.h8l.io/domain/service username: from_secret: REGISTRY_USERNAME password: from_secret: REGISTRY_PASSWORD |