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

Drone Migration (Deprecated)

This chapter is deprecated since Drone has been removed from the Factory on the January 6th, 2024

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:

Steps to migrate your repository:

  1. Sign in to the h8l.io dashboard
  2. Go to your domain
  3. Click on the service to migrate
  4. If the Drone integration is enable on your service you should see the “Woodpecker migration” menu button:

Woodpecker migration

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:

Woodpecker link

Before to trigger your first Woodpecker build, you have to migrate your existing service’s Drone pipeline.

Migrate your pipelines

References:

Simple conversion:

The example below shows the differences between a .drone.yml and a .woodpecker.yml.

.drone.yml.woodpecker.yml
kind: pipeline
type: kubernetes
name: default

trigger:
  event:
  - push
  - tag

steps:
- name: build
  image: maven:3-openjdk-18-slim
  commands:
  - mvn verify -B -V

- name: 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









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