Run drone-server on Cloudron
Go to file
Felix Bartels 99755b80a4 update command for drone runner
Signed-off-by: Felix Bartels <felix@host-consultants.de>
2020-10-08 15:02:29 +02:00
.github Create FUNDING.yml 2020-06-06 09:21:11 +02:00
helpers/surfer update drone and surfer to the latest version 2020-10-08 14:41:04 +02:00
runner another switch to enable the local ui 2020-06-24 07:41:12 +02:00
.dockerignore move runner into subfolder 2020-06-07 17:07:27 +02:00
.gitignore move runner into subfolder 2020-06-07 17:07:27 +02:00
CloudronManifest.json add logo 2020-06-09 12:08:43 +02:00
Dockerfile update drone and surfer to the latest version 2020-10-08 14:41:04 +02:00
LICENSE.txt add license 2020-06-10 14:50:51 +02:00
logo.png add logo 2020-06-09 12:08:43 +02:00
Makefile Add scripting to run drone-server on Cloudron 2020-06-05 22:25:57 +02:00
README.md update command for drone runner 2020-10-08 15:02:29 +02:00
start.sh add logo 2020-06-09 12:08:43 +02:00
supervisor-drone-server.conf Add scripting to run drone-server on Cloudron 2020-06-05 22:25:57 +02:00

Drone CI for Cloudron

Run the Drone server on Cloudron and the agents locally.

I am using this setup together with a Gitea running on the same Cloudron installation.

What is Sponsorware?

This project is published as Sponsorware. Which means it is (at first) only available for those that sponsor my work (for example on Github) and therefore allow me to spent time on it. I have collected some thoughs on Sponsorware on my blog.

Requirements

  • docker-compose (on the system where you want to run the agent)
  • git
  • jq
  • make
  • Cloudron CLI

Installation

  • Run DOCKER_REPO=your-docker-hub-user make install to install the Drone server component at drone.yourdomain.com (yourdomain.com automatically adapts to your Cloudron setup)
  • Run make exec to open the cli of the app and modify .env so that it can connect to your Git instance
  • Run cloudron restart to restart the app and apply your changes
  • Verify that your setup works by going to https://drone.yourdomain.com
  • If all looks good run runner/start.sh to start the Drone agent on your local machine (will fetch credentials from the installed app directly)
  • Add the Drone configuration to your desired repositories

Tips and Tricks

I would also like to share some very useful commands. To install drone CLI, follow official docs.

Using drone-cli

Go to your user settings and get login information

export DRONE_SERVER=https://drone.9wd.eu
export DRONE_TOKEN=your token
drone info

Executing pipelines directly

You can also run pipelines directly with the Drone CLI:

drone exec --secret-file drone_secrets.yaml .drone.yml

A template for drone-secrets.yaml:

slack_url: https://hooks.slack.com/services/xxxxxxxxxxxx

Adding secrets through CLI

You can either add secrets through the web UI or use drone directly from your terminal:

drone secret add -repository username/repository-name --name foo --data bar --allow-pull-request

Inspiration