Drone CI
lastmod 2025-12-12created 2025-12-084 edits
Drone is a continuous integration platform built on Docker and written in Google Go. The Drone project grew to improve on the problems of currently available technologies, and it handles the work of setting up the development environment.
Drone offers a simple approach to automated testing and continuous delivery. You just choose a Docker image that fits your purpose, connect it to GitHub, and commit. Drone uses Docker containers to provide isolated testing environments, and gives full control over every project through the stack without the burden of having to manage servers as in the traditional way. The Drone community has 100 contributors and hopes to see the day it is applied to mobile app development and the enterprise.
Architecture
Drone has a very simple client and server-based architecture, it is composed of three things:
- Drone server
- Drone agents (called runners)
- Drone pipeline configuration file (on each git repository)
The following diagram depicts its architecture with more detail:
| |
Features
The following is a list of the main Drone features:
- Drone is very lightweight because it is written in Go and all of its components run as Docker containers. Thanks to this, Drone can be easily deployed to various platforms or cloud environments in just a few minutes.
- By default, each pipeline step runs inside an isolated Docker container that is downloaded automatically at runtime.
- Drone also has a much lower learning curve than other CI/CD products such as Jenkins.
- This broad platform support lets a single product be used for a variety of use case scenarios, from traditional cloud deployments to IoT and native Windows or Mac builds.
Cons
- The Drone server must be reachable over the internet so that the SCM platform can access the Drone server's webhooks.
- Drone has about 100 plugins, but that is far fewer than the number of plugins available for other products such as Jenkins.
- The tool only supports Git SCM platforms, but this should not be a problem for modern projects.
- A Drone server instance can access only one Git SCM platform at a time. If you use multiple platforms, you need to instantiate multiple Drone servers, one per SCM platform.
See also
- CI/CD
- GitHub Actions
- CircleCI
- Woodpecker CI - A modified fork of Drone version 0.8, after Drone changed from Apache 2 to a proprietary license
- Argo CD