オープンソース版Droneで--depthオプション付きでgit cloneを行うようにしました

オープンソース版Droneでのビルド時に、git cloneで時間がかからないよう、--depthオプション付きでgit cloneを実施するようにしました。

デフォルトでは、--depth=50でgit cloneが実行されます。(デフォルト値はTravis CIを参考にしました。)

f:id:kysd:20140213160208p:plain

以下のように、.drone.ymlでgit: depth:に値を指定すると、--depthにその値が設定されてgit cloneが実行されます。

image: go1.2
env:
  - GOPATH=/var/cache/drone
services:
  - mongodb
script:
  - go get labix.org/v2/mgo
  - go get labix.org/v2/mgo/bson
  - go build
  - go test -cover -v
git:
  depth: 1

f:id:kysd:20140213160601p:plain

オープンソース版Droneでのビルド成功後にHerokuへモジュールを自動的にデプロイする方法

オープンソース版Droneでのビルド成功後にHerokuへモジュールを自動的にデプロイする方法は以下の通りです。

HerokuへのSSH Keyの登録

Drone側でリポジトリ名 -> Settings ->Key Pairsと遷移してSSH Keyを取得し、それをHeorkuのAccountのSSH Keysへ設定します。

f:id:kysd:20140213165622p:plain

.drone.ymlの設定

以下のようにdeploy: heroku: app:を設定します。app:にはHerokuのアプリケーション名を指定します。

image: go1.2
env:
  - GOPATH=/var/cache/drone
script:
  - go build
  - go test -cover -v
deploy:
  heroku:
    app: drone-heroku-test

デプロイの確認

ビルドが成功すると、以下のように、Herokuへのデプロイが実施されます。

f:id:kysd:20140213170114p:plain

オープンソース版Droneでのビルド成功後にS3へファイルを配布する方法

オープンソース版Droneでのビルド成功後にS3へファイルを配布する方法は以下の通りです。

.drone.ymlファイルの設定

以下の通りpublish: s3:を定義します。

image: go1.2
env:
  - GOPATH=/var/cache/drone
script:
  - go build main.go
publish:
  s3:
    acl: public-read
    region: ap-northeast-1
    bucket: yosssi
    access_key: AWSアクセスキー
    secret_key: AWSシークレットキー
    source: /var/cache/drone/src/github.com/yosssi/drone-test-publish/main
    target: test/

ビルドの実施

ビルド実施後にS3への配布が行われることを確認します。

f:id:kysd:20140213215034p:plain

配布モジュールの確認

S3にモジュールが配布されていることを確認します。

f:id:kysd:20140213215138p:plain