Drone CI/CD


One common issue that people come across when developing something on Github is the costs associated with it. Some can be mitigated but never entirely. After a certain boundary is built-in, Continuous Integration/Continuous Deployment solutions will start billing for the minutes that you use. So, in order to save money and potentially my own time I set up Drone CI. Similar to GitHub Actions or Gitlab CI/CD it uses a YAML file to define the steps it should take to test, build and deploy your programs.

The primary advantage that Drone CI has over these built-in solutions is that it is simple to set up, not using a standard email/password login but an OAuth login attached to your chosen Git provider. This makes it easy for it to communicate back and forth, updating the status of the deployment as well as performing actions like releases with minimal fuss.

The primary reason I turned to it though is how easy it is to use to build docker images and publish them. Other programs had limited functionality in that regard and would take a lot of time to perform the necessary steps.

Instead, with Drone, I just define a YAML to automatically build my code and then point that file towards a Dockerfile which it uses to bundle the code for easy deployment. Another advantage of Drone is its runners. Unlike GitHub and Gitlab the Drone Runners can be docker-based, creating containers for each step and, therefore compiling your code in an identical environment to where it's going to be deployed (in my case node:alpine).

In conclusion Drone, CI is an awesome solution to several problems that I've had with CI solutions in the past whilst at the same time being flexible enough for nearly any project that I throw at it.