1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2024-11-24 08:02:18 +02:00
Woodpecker is a simple yet powerful CI/CD engine with great extensibility.
Go to file
Marian Steinbach 17b8867b96
Clean up config environment variables for server and agent (#218)
The goal here is to make consistent use of configuration environment variables prefixed `WOODPECKER_`. Where several variants existed, this PR aims to remove all but one option, leaving the most explicit.

This PR only changes server and agent code, but not documentation, in order to keep the PR digestible. Once we have consensus that this is correct, I'll change docs accordingly.

User (rather: admin) facing changes in this PR:

- In general, support for all server and agent config environment variables (env vars) starting with `DRONE_` is removed. The according `WOODPECKER_*` variables must be used instead.
- The env var `WOODPECKER_HOST` replaces `DRONE_HOST`, and `DRONE_SERVER_HOST`.
- The env var `WOODPECKER_AGENT_SECRET` is used to configure the shared secret which agents use to authenticate against the server. It replaces `WOODPECKER_SECRET`, `DRONE_SECRET`, `WOODPECKER_PASSWORD`, `DRONE_PASSWORD`, and `DRONE_AGENT_SECRET`.
- The env var `WOODPECKER_DATABASE_DRIVER` replaces `DRONE_DATABASE_DRIVER` and `DATABASE_DRIVER`.
- The env var `WOODPECKER_DATABASE_DATASOURCE` replaces `DRONE_DATABASE_DATASOURCE` and `DATABASE_CONFIG`.
2021-09-28 15:43:44 +02:00
.github Add Support section to README (#310) 2021-09-17 18:34:11 +02:00
.vscode update launch config (#359) 2021-09-26 00:46:07 +02:00
.woodpecker Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
agent Move cncd/pipeline/pipeline/ to pipeline/ (#347) 2021-09-24 13:18:34 +02:00
charts Release Helm charts (#302) 2021-09-24 14:04:54 +02:00
cli Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
cmd Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
docs Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
drone-go Remove legacy/unused code + misc cleanups (#331) 2021-09-21 17:35:32 +02:00
pipeline Add json schema and cli lint command (#342) 2021-09-27 02:38:15 +02:00
server Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
shared Extend Logging & Report to WebHook Caller back if pulls are disabled (#369) 2021-09-27 23:32:08 +02:00
vendor Add json schema and cli lint command (#342) 2021-09-27 02:38:15 +02:00
version Version is now a string coming from ldlags and git tags 2019-11-12 21:10:16 +01:00
web Remove push, tag and deployment webhook filters (#281) 2021-09-18 16:28:35 +02:00
.changelog.yml Changelog for v0.14.1 (#334) (#340) 2021-09-23 02:21:28 +02:00
.dockerignore Building OSS 2019-04-05 10:17:27 +02:00
.editorconfig Enforce code format (#228) 2021-06-22 12:34:35 +02:00
.gitignore Refactor cli (#329) 2021-09-21 16:36:41 +02:00
BUILDING Fix docs/makefile after #284 got merged (#291) 2021-09-09 19:39:59 +02:00
CHANGELOG.md Changelog for v0.14.1 (#334) (#340) 2021-09-23 02:21:28 +02:00
CONTRIBUTING.md Community Guide (#296) 2021-09-11 23:45:18 +02:00
docker-compose.example.yml Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
Dockerfile Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
Dockerfile.agent Rename cmd agent and server folders and binaries (#330) 2021-09-21 17:06:13 +02:00
Dockerfile.agent.alpine Rename cmd agent and server folders and binaries (#330) 2021-09-21 17:06:13 +02:00
Dockerfile.alpine Clean up config environment variables for server and agent (#218) 2021-09-28 15:43:44 +02:00
go.mod Add json schema and cli lint command (#342) 2021-09-27 02:38:15 +02:00
go.sum Add json schema and cli lint command (#342) 2021-09-27 02:38:15 +02:00
LICENSE Optimize license files (#355) 2021-09-25 15:15:54 +02:00
Makefile Rename cmd agent and server folders and binaries (#330) 2021-09-21 17:06:13 +02:00
README.md Add Support section to README (#310) 2021-09-17 18:34:11 +02:00
tools.go Cleanup Code (#348) 2021-09-24 16:29:26 +02:00

Woodpecker



Woodpecker

Woodpecker is a community fork of the Drone CI system.

woodpecker

Support

Please consider to donate and become a backer. 🙏 [Become a backer]

Usage

.woodpecker.yml

  • Place your pipeline in a file named .woodpecker.yml in your repository
  • Pipeline steps can be named as you like
  • Run any command in the commands section
# .woodpecker.yml
pipeline:
  build:
    image: debian
    commands:
      - echo "This is the build step"
  a-test-step:
    image: debian
    commands:
      - echo "Testing.."

Build steps are containers

  • Define any Docker image as context
  • Install the needed tools in custom Docker images, use them as context
 pipeline:
   build:
-    image: debian
+    image: mycompany/image-with-awscli
     commands:
       - aws help

File changes are incremental

  • Woodpecker clones the source code in the beginning pipeline
  • Changes to files are persisted through steps as the same volume is mounted to all steps
# .woodpecker.yml
pipeline:
  build:
    image: debian
    commands:
      - touch myfile
  a-test-step:
    image: debian
    commands:
      - cat myfile

Plugins are straightforward

  • If you copy the same shell script from project to project
  • Pack it into a plugin instead
  • And make the yaml declarative
  • Plugins are Docker images with your script as an entrypoint
# Dockerfile
FROM laszlocloud/kubectl
COPY deploy /usr/local/deploy
ENTRYPOINT ["/usr/local/deploy"]
# deploy
kubectl apply -f $PLUGIN_TEMPLATE
# .woodpecker.yml
pipeline:
  deploy-to-k8s:
    image: laszlocloud/my-k8s-plugin
    template: config/k8s/service.yml

Documentation

https://woodpecker-ci.github.io/

Who uses Woodpecker?

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

Leave a comment if you're using it.

Contribution

See Contributing Guide

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 are licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License.