Woodpecker is a community fork of the Drone CI system.
Find a file
2019-11-15 10:21:08 +01:00
.github Vendor folder gone 2019-10-24 11:17:07 +02:00
.vscode Version is now a string coming from ldlags and git tags 2019-11-12 21:10:16 +01:00
build Create Makefile and targets to build project 2019-09-14 14:20:16 +02:00
cli Format source code 2019-09-14 14:21:16 +02:00
cmd Compile error 2019-11-12 21:49:38 +01:00
cncd Migrating to yaml.v3 2019-11-15 10:21:08 +01:00
docs Correct attribution 2019-11-13 20:12:01 +01:00
docs-old Administration articles moved 2019-11-13 20:04:14 +01:00
drone-go Project is renamed to Woodpecker 2019-08-27 13:07:19 +02:00
model Iterating on cance;ation logic 2019-09-16 15:19:09 +02:00
plugins Project is renamed to Woodpecker 2019-08-27 13:07:19 +02:00
remote Format source code 2019-09-14 14:21:16 +02:00
router Version is now a string coming from ldlags and git tags 2019-11-12 21:10:16 +01:00
server Administration articles moved 2019-11-13 20:04:14 +01:00
shared Just fixed format with go fmt ./... 2018-03-21 14:02:17 +01:00
store Format source code 2019-09-14 14:21:16 +02:00
version Version is now a string coming from ldlags and git tags 2019-11-12 21:10:16 +01:00
web Merge pull request #100 from laszlocph/dependabot/npm_and_yarn/web/sshpk-1.16.1 2019-11-14 11:28:27 +01:00
.cli.sh Project is renamed to Woodpecker 2019-08-27 13:07:19 +02:00
.dockerignore Building OSS 2019-04-05 10:17:27 +02:00
.drone.sh ARM is not widely used, making the project leaner 2019-11-13 11:26:23 +01:00
.drone.yml Switched to Go 1.13.3 2019-11-14 11:42:38 +01:00
.gitignore Add missing requirements.txt 2019-11-13 12:23:16 +01:00
BUILDING Create Makefile and targets to build project 2019-09-14 14:20:16 +02:00
docker-compose.yml Project is renamed to Woodpecker 2019-08-27 13:07:19 +02:00
Dockerfile update base image to drone/ca-certs 2017-09-11 16:03:11 -07:00
Dockerfile.agent add alpine images 2017-09-27 19:01:52 -07:00
Dockerfile.agent.alpine Alpine upgrade 2019-11-14 11:45:43 +01:00
Dockerfile.alpine Alpine upgrade 2019-11-14 11:45:43 +01:00
go.mod Migrating to yaml.v3 2019-11-15 10:21:08 +01:00
go.sum Migrating to yaml.v3 2019-11-15 10:21:08 +01:00
LICENSE Project is renamed to Woodpecker 2019-08-27 13:07:19 +02:00
Makefile Version is now a string coming from ldlags and git tags 2019-11-12 21:10:16 +01:00
README.md Administration articles moved 2019-11-13 20:04:14 +01:00

Woodpecker

An opinionated fork of the Drone CI system.

  • Based on the v0.8 code tree
  • Focused on developer experience.

Go Report Card License

woodpecker

Table of contents

About this fork

Motivation

Why fork? See my motivation

The focus of this fork

This fork is not meant to compete with Drone or reimplement its enterprise features in the open.

Instead, I'm taking a proven CI system - that Drone 0.8 is - and applying a distinct set of product ideas focusing on:

  • UI experience
  • the developer feedback loop
  • documentation and best practices
  • tighter Github integration
  • Kubernetes backend

with less focus on:

  • niche git systems like gitea, gogs
  • computing architectures like arm64
  • new pipeline formats like jsonnet

Who uses this fork

Currently I know of one organization using this fork. With 50+ users, 130+ repos and more than 300 builds a week.

Pipelines

Getting started

Place this snippet into a file called .drone.yml

pipeline:
  build:
    image: debian:stable-slim
    commands:
      - echo "This is the build step"
  a-test-step:
    image: debian:stable-slim
    commands:
      - echo "Testing.."

The pipeline runs on the Drone CI server and typically triggered by webhooks. One benefit of the container architecture is that it runs on your laptop too:

$ drone exec --local
stable-slim: Pulling from library/debian
a94641239323: Pull complete
Digest: sha256:d846d80f98c8aca7d3db0fadd14a0a4c51a2ce1eb2e9e14a550b3bd0c45ba941
Status: Downloaded newer image for debian:stable-slim
[build:L0:0s] + echo "This is the build step"
[build:L1:0s] This is the build step
[a-test-step:L0:0s] + echo "Testing.."
[a-test-step:L1:0s] Testing..

Pipeline steps are commands running in container images. These containers are wired together and they share a volume with the source code on it.

Pipeline documentation

See all pipeline features.

Plugins

Plugins are Docker containers that perform pre-defined tasks and are configured as steps in your pipeline. Plugins can be used to deploy code, publish artifacts, send notification, and more.

Example pipeline using the Docker and Slack plugins:

pipeline:
  backend:
    image: golang
    commands:
      - go get
      - go build
      - go test

  docker:
    image: plugins/docker
    username: kevinbacon
    password: pa55word
    repo: foo/bar
    tags: latest

  notify:
    image: plugins/slack
    channel: developers
    username: drone

Custom plugins

Plugins are Docker containers with their entrypoint set to a predefined script.

See how an example plugin can be implemented in a bash script.

Server setup

Contributing

woodpecker is Apache 2.0 licensed and accepts contributions via GitHub pull requests.

How to build the project

License

woodpecker is Apache 2.0 licensed with the source files in this repository having a header indicating which license they are under and what copyrights apply.

Files under the docs/ folder is licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License. It is a derivative work of the https://github.com/drone/docs git repository.