Slide 1

Slide 1 text

Drone CI 2015-10-20 @dtan4 http://www.humanitarianstudies.no/wp-content/uploads/2014/06/drone-sunset.jpg

Slide 2

Slide 2 text

2छྨͷ Drone CI • Drone.io • CI as a Service • Drone • OSS • @dtan4 ͕ಋೖ͠Α͏ͱฃಆ͍ͯ͠Δ΍ͭ

Slide 3

Slide 3 text

Drone.io https://drone.io

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Drone.io • CI as a Service ͱͯ͠ͷ Drone • OSS ͸ແྉɺPrivate Repository ͸༗ྉ • GitHub, Bitbucket, Google Code ରԠ • ޷͖ͳΑ͏ʹςετεΫϦϓτΛ͔͚Δ • ϦϙδτϦϧʔτͷ .yml ͡Όͳ͍… • S3, Heroku, Dotcloud, … ʹσϓϩΠՄೳ https://drone.io/

Slide 6

Slide 6 text

Drone.io

Slide 7

Slide 7 text

Drone.io

Slide 8

Slide 8 text

Drone.io … • ʢͨͿΜʣDocker ૸Βͳ͍ & ૸ͬͯͳ͍ • ͍·Ͳ͖ .yml ͰεΫϦϓτॻ͚ͳ͍ͷ͸… • ଞΑΓ͍҆ͱ͍͏Θ͚Ͱ΋ͳ͍ • m1.small + Jenkins ΑΓ͍҆ͱ͍͏͚ͩ • ςετΛฒྻʹ͢Δͷ͸ CircleCI ΑΓߴ͍ • Jenkins ͷ࢖͍উखΛΫϥ΢υαʔϏεͰɺ
 ͱ͍͏ਓ޲͚ʁ

Slide 9

Slide 9 text

Drone drone/drone

Slide 10

Slide 10 text

Drone • OSS ͷ Docker-based CI • Ϗϧυ͝ͱʹಠཱͨ͠ Docker Container ཱ͕ͭ • DB ͱ͔΋Ϗϧυ͝ͱʹཱͭ • Drone.io ͷ @bradrydzewski ͕Φʔφʔ • Golang ੡ drone/drone

Slide 11

Slide 11 text

Drone • GitHub, GH:E, Bitbucket, GitLab ʹରԠ • ϦϙδτϦϧʔτͷ .drone.yml ʹ
 ςετεΫϦϓτΛॻ͘ • OSS CI ͩͱ Drone ͱ GitLab CI ͘Β͍͔͠
 ରԠͯ͠ͳ͍ • Heroku, S3, … ΁ͷσϓϩΠରԠ • Email, HipChat, Slack, … ΁ͷ௨஌ʹରԠ drone/drone

Slide 12

Slide 12 text

Jenkins #1 #2 #3 #4

Slide 13

Slide 13 text

Drone #1 #2 #3 #4

Slide 14

Slide 14 text

Version of Drone • Version 0.3 (master) • ݱࡏͷ stable • 1ϲ݄͘Β͍์ஔ͞ΕͯΔ • Version 0.4 (0.4.0) • Ӷҙ։ൃத • .drone.yml ͷޓ׵ੑ͸ͳ͍ drone/drone

Slide 15

Slide 15 text

.drone.yml image: ruby:2.2.3 cache: - vendor/bundle env: - RAILS_ENV=test services: - postgres script: - bundle install -j4 --path=vendor/bundle - bundle exec rake db:test:prepare - bundle exec rspec 0.3 Α͋͘Δ Rails Drone ެࣜΠϝʔδ or
 ެ։͞Ε͍ͯΔΠϝʔδ ͜͜΋޷͖ͳΠϝʔδ࢖͑Δ

Slide 16

Slide 16 text

.drone.yml cache: mount: - vendor/bundle compose: database: image: postgres:9.4 build: image: ruby:2.2.3 environment: - DATABASE_USER=postgres - RAILS_ENV=test commands: - bundle install -j4 --path=vendor/bundle - bundle exec rake db:test:prepare - bundle exec rspec 0.4 Α͋͘Δ Rails

Slide 17

Slide 17 text

ςετը໘ 0.3 Ϗϧυ్தͰ ΩϟϯηϧͰ͖ͳ͍…

Slide 18

Slide 18 text

ςετը໘ 0.4

Slide 19

Slide 19 text

Secret Variables • 0.3, 0.4 ͱ΋ʹ Web UI ্ͰઃఆՄೳ • wercker Έ͍ͨʹӅͯ͠͸͘Εͳ͍ • 0.4 ͩͱ .drone.sec ͱ͍͏ϑΝΠϧʹ҉߸Խͯ͠
 ϦϙδτϦʹஔ͚Δ • travis encrypt ͱ
 ࣅͨײ͡

Slide 20

Slide 20 text

Docker on Drone • جຊతʹͰ͖ͳ͍ • ςετίϯςφ͕ /var/run/docker.sock
 Ϛ΢ϯτͯ͠ͳ͍ͨΊ • ଞͷςετίϯςφΛফͤͯ͠·͏໰୊ • Docker in Docker ͳΒͰ͖Δ…ʁ (#380) • ߟ͑ͳ͓ͤͱ͍͏هࣄ΋͋Δ • DOCKER_HOST Λผϗετʹ޲͚ͯ
 docker build ΍ docker-compose ͢Δͱ͔…ʁ http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

Slide 21

Slide 21 text

ॴײ • ࣗલͰ CI ࣋ͭͳΒ͜ΕҰ୒ • Docker ίϯςφͱͯ͠ಈ͔͢ͷ΋༰қ • ΠϚυΩͷ CI as a service ͷػೳΛͪΌΜͱ
 ࢖͑Δ • ·ͩ·ͩ։ൃ్্ • Drone 0.4 ͱ PostgreSQL ͷ૬ੑ͕ѱ͍ • ͍͟ͱͳͬͨΒιʔεಡΜͰ௚ͤΔ • OSS! OSS!