Upload
lance-smith
View
27
Download
7
Embed Size (px)
Citation preview
Flying With Drone.ioLightweight, Docker based CI
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
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
Installation
● deb package● rpm package● official docker image (more on this later)
Caveaut! - requires systemd.
Configuration
● data backend○ sqlite (default)○ postgres○ mysql (not unless
you have to)
● Version Control○ Github/Enterprise○ Gitlab
Configuration (cont’d)
● ssl● Notification Endpoints● Artifact publishing/deployment● config file vs. 12 factor app style
Drone.io in a Docker Container?
Two ways to handle this
1. -v /var/run/docker.sock:/var/run/docker.sock2. build slaves over tcp via docker remote api
Concepts - the `.drone.yml` file
● image● script● publish● deploy● notify
Image
● Image to pull and run as build environment● Requirements
○ git● Caveat - cannot build docker container at
build time. Must already exist.
Script
● Basic build script
Notify
● email● github● irc● generic webhook● gitter● hipchat● slack
● flowdock ?● katiom ?● zapier ?
publish
● docker● azure● gems● pypi● npm● maven
● s3● openstack swift● bintray
● bintray● dropbox
deploy
● git● heroku● deis● cloudfoundry● nodejitsu● tsuru● modulus
● bash● ssh
○ id_rsa.pub
Say “When”!
Each section supports a “when” clause to control build flow and actions.
A sample workflow
…
Help!
● github● docs (serious WIP)● gitter
What’s next?
● better support for docker/ci● easy custom plugins● reporting
Questions?