Welcome to the Drone codebase, we are thrilled to have you here!
Drone is a continuous delivery system built on container technology. Drone uses a simple YAML build file, to define and execute build pipelines inside Docker containers.
- What is Drone?
- Table of Contents
- Community and Support
- Contributing
- Code of Conduct
- Setup Documentation
- Usage Documentation
- Example
.drone.yml
build file - Plugin Index
- Documentation and Other Links
Harness Community Slack - Join the #drone slack channel to connect with our engineers and other users running Drone CI.
Harness Community Forum - Ask questions, find answers, and help other users.
Report A Bug - Find a bug? Please report in our forum under Drone Bugs. Please provide screenshots and steps to reproduce.
Events - Keep up to date with Drone events and check out previous events here.
We encourage you to contribute to Drone! Whether that's joining in on the community slack or discourse, or contributing pull requests / documentation changes or raising issues.
Drone follows the CNCF Code of Conduct.
This section of the documentation will help you install and configure the Drone Server and one or many Runners. A runner is a standalone daemon that polls the server for pending pipelines to execute.
Our documentation can help you get started with the different types of pipelines/builds. There are different runners / plugins / extensions designed for different use cases to help make an efficient and simple build pipeline
Plugins are used in build steps to perform actions, eg send a message to slack or push a container to a registry. We have an extensive list of community plugins to customize your build pipeline, you can find those here.
This build file contains a single pipeline (you can have multiple pipelines too) that builds a go application. The front end with npm. Publishes the docker container to a registry and announces the results to a slack room.
name: default
kind: pipeline
type: docker
steps:
- name: backend
image: golang
commands:
- go get
- go build
- go test
- name: frontend
image: node:6
commands:
- npm install
- npm test
- name: publish
image: plugins/docker
settings:
repo: octocat/hello-world
tags: [ 1, 1.1, latest ]
registry: index.docker.io
- name: notify
image: plugins/slack
settings:
channel: developers
username: drone
- Setup Documentation docs.drone.io/installation
- Usage Documentation docs.drone.io/getting-started
- Plugin Index plugins.drone.io
- Getting Help discourse.drone.io
- Build the Enterprise Edition BUILDING
- Build the Community Edition BUILDING_OSS
We have two versions available: the Enterprise Edition and the Community Edition
Run the changelog generator.
docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u drone -p drone -t <secret github token>
You can generate a token by logging into your GitHub account and going to Settings -> Personal access tokens.
Next we tag the PR's with the fixes or enhancements labels. If the PR does not fulfill the requirements, do not add a label.
Before moving on make sure to update the version file version/version.go && version/version_test.go
.
Run the changelog generator again with the future version according to semver.
docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator -u harness -p drone -t <secret token> --future-release v1.0.0
Create your pull request for the release. Get it merged then tag the release.