Spin up AWS server
- Ubuntu Server 14.04 LTS (HVM), SSD Volume Type – ami-fce3c696
- 250MB magnetic storage
ssh ubuntu@<aws-instance> and install docker
Register github application
Go to github and register a new OAuth application using the following values:
- Application name Couchbase Mobile Drone CI
- Homepage URL http://ec2-54-163-185-45.compute-1.amazonaws.com
- Application description Couchbase Mobile Drone CI
- Authorization callback URL http://ec2-54-163-185-45.compute-1.amazonaws.com/authorize
It will give you a Client ID and Client Secret
/etc/drone/dronerc config file
On the ubuntu host:
Configure Remote Driver
Add these values:
client_secret with the values returned from github.
Add these values:
Run Docker container
1 2 3 4 5 6 7 8 9
Check the logs via
docker logs <container-id> and they should look something like this
Edit AWS security group
With your instance selected, look for the security groups in the instance details:
Add a new inbound port with the following settings:
- Protocol TCP
- Port Range 80
- Source 0.0.0.0
It should look like this when you’re done:
Verify it’s running
Paste the hostname of your aws instance into your browser (eg,
http://ec2-54-163-185-45.compute-1.amazonaws.com), and you should see a page like this:
If you click the login button, you should see:
Activate a repository
Click one of the repositories you have access to, and you should get an “activate now” option:
which will take you to your project home screen:
.drone.yml file to the root of the repository
In the repository you have chosen (in my case I’m using
tleyden/sync_gateway, which is a golang project, and may refer to it later), add a
.drone.yml file to the root of the repository with:
1 2 3 4 5 6
Commit your change, but do not push to github yet, that will be in the next step.
Kickoff a build
Now push your change up to github.
and in your drone UI you should see a build in progress:
when it finishes, you’ll see either a pass or a failure. If you get a failure (which I did), it will look like this:
Manually triggering another build
In my case, the above failure was due to a dependency not building. Since nothing else needs to be pushed to the repo to fix the build, I’m just going to manually trigger a build.
On the build failure screen above, there is a Restart button, which triggers a new build.
Now it works!
Setup the Drone CLI
I could run this on my OSX workstation, but I decided to run this on a linux docker container. The rest of the steps assume you have spun up and are inside a linux docker container.
Go to your Profile page in the drone UI, and click Show Token.
Now set these environment variables
To test the CLI tool works, try the following commands:
1 2 3 4 5