20
Flying With Drone.io Lightweight, Docker based CI

Drone presentation

Embed Size (px)

Citation preview

Page 1: Drone presentation

Flying With Drone.ioLightweight, Docker based CI

Page 2: Drone presentation

What is drone.io

● Docker based CI/CD platform○ written in go○ spins up a docker instance○ checks out code from your VCS○ “builds”○ and other stuff

Page 3: Drone presentation

Why should I care?

● on and off prem offerings● Lightweight● easy to deploy● Recent honorable mention by black duck

software for rookie of the year● Gaining community support

Page 4: Drone presentation

Installation

● deb package● rpm package● official docker image (more on this later)

Caveaut! - requires systemd.

Page 5: Drone presentation

Configuration

● data backend○ sqlite (default)○ postgres○ mysql (not unless

you have to)

● Version Control○ Github/Enterprise○ Gitlab

Page 6: Drone presentation

Configuration (cont’d)

● ssl● Notification Endpoints● Artifact publishing/deployment● config file vs. 12 factor app style

Page 7: Drone presentation

Drone.io in a Docker Container?

Page 8: Drone presentation

Two ways to handle this

1. -v /var/run/docker.sock:/var/run/docker.sock2. build slaves over tcp via docker remote api

Page 9: Drone presentation

Concepts - the `.drone.yml` file

● image● script● publish● deploy● notify

Page 10: Drone presentation

Image

● Image to pull and run as build environment● Requirements

○ git● Caveat - cannot build docker container at

build time. Must already exist.

Page 11: Drone presentation

Script

● Basic build script

Page 12: Drone presentation

Notify

● email● github● irc● generic webhook● gitter● hipchat● slack

● flowdock ?● katiom ?● zapier ?

Page 13: Drone presentation

publish

● docker● azure● gems● pypi● npm● maven

● s3● openstack swift● bintray

● bintray● dropbox

Page 14: Drone presentation

deploy

● git● heroku● deis● cloudfoundry● nodejitsu● tsuru● modulus

● bash● ssh

○ id_rsa.pub

Page 15: Drone presentation

Say “When”!

Each section supports a “when” clause to control build flow and actions.

Page 16: Drone presentation

A sample workflow

Page 18: Drone presentation

What’s next?

● better support for docker/ci● easy custom plugins● reporting

Page 19: Drone presentation

Questions?

Page 20: Drone presentation