mirror of
https://github.com/fbartels/cloudron-drone-app.git
synced 2024-11-24 22:20:58 +00:00
Run drone-server on Cloudron
de3e45a505
Signed-off-by: Felix Bartels <felix@9wd.eu> |
||
---|---|---|
.github | ||
helpers | ||
runner | ||
.dockerignore | ||
.drone.yml | ||
.gitignore | ||
CloudronManifest.json | ||
Dockerfile | ||
LICENSE.txt | ||
logo.png | ||
Makefile | ||
POSTINSTALL.md | ||
README.md | ||
start.sh | ||
supervisor-drone-server.conf |
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 atdrone.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- refer to https://readme.drone.io/server/provider/gitea/#create-an-oauth-application regarding the oauth registration in Gitea
- the drone instance is running at
drone.yourdomain.com
and the redirect url would then behttps://drone.yourdomain.com/login
- the secrets are automatically created and inserted into
.env
- 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 secrets.txt .drone.yml
A template for secrets.txt
:
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
Trigger build via curl
curl -X POST -i https://drone.9wd.eu/api/repos/felix/cloudron-drone-app/builds -H "Authorization: Bearer your-token"
Get token from https://drone.9wd.eu/account
Webhooks do not trigger builds in Drone?
- remove the webhook in Gitea
- go to Drone dashboard and disable the individual project in the settings
- reenable the project
- got back to Gitea and "test delivery" of your new webhook