真Drone入門5. drone.io とは
∙ Brad Rydzewski が開発・運用
∙ Docker ベースの CI サービス
∙ github, bitbucket などに対応
∙ OSS バージョンが存在
今回は OSS の drone について話します
4
12. インストール
drone 自体 dockerize されている
dockerize されているのでディストリビューションを問わない
$ git clone git@github.com:drone/drone.git && cd drone
$ sudo docker build -t drone/drone .
11
13. 実行
設定はほぼ環境変数で可能
$ sudo docker run -d -v /home/ma2/drone:/var/lib/drone
--net=host --name="drone"
DRONE_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
-e DRONE_WORKER_NODES="tcp://0.0.0.0:2375"
-e DRONE_BITBUCKET_CLIENT=XXXXXXXXXXXXXX
-e DRONE_BITBUCKET_SECRET=XXXXXXXX drone/drone
VOLUME が /var/lib/drone になっているので注意
12
22. publish
成果物の Publish 先
∙ S3
∙ Swift
∙ NPM
∙ PYPI
∙ Docker
∙ Dropbox
∙ Github
∙ Bintray
∙ Azure
ドキュメントに出てないものが幾つかある
21
23. dropbox
Dropbox Application を作成し、TOKEN をもらう
シェルとして展開されるので環境変数は展開される
env:
- TARGET=foo_$CI_BRANCH
...
publish:
dropbox:
access_token: $$DROPBOX_TOKEN
source: /bin/target.zip
target: /artifact/latest/$TARGET.zip
22
25. deploy
成果物の Deploy 先
∙ CloudFoundry
∙ Git
∙ Heroku
∙ Deis
∙ Modulus
∙ Nodejitsu
∙ SSH
∙ Tsuru
∙ Bash
drone.io 参照
24
28. 例
dropbox publish
cmd := "curl --upload-file %s -H "Authorization: Bearer
%s" "https://api-content.dropbox.com/1/files_put/auto/%s?
f.WriteCmd(fmt.Sprintf(cmd, d.Source, d.AccessToken, d.Targ
27