Posted at

Drone 0.3 をいじりながら利用する

More than 5 years have passed since last update.


概要

Drone 現在の最新バージョンは 0.2.1 ですが master を 0.3 と位置づけているらしく、commit数も 0.2.1 が 519 であるのに対して master は 964 と大きく乖離しています。

branch 内にスラッシュが入ってくると angular.js の routing を利用している都合でおかしくなったりとあります。

みんなでコードをいじってPRを送りましょう!


構成

内部のディレクトリ構成もガッツリ変わってしまっています。

ただ、大方見ないといけないのは server 配下だけです。

server

├── app
│   ├── scripts
│   ├── styles
│   └── views
├── blobstore
├── capability
├── datastore
│   ├── database
│   └── migrate
├── handler
├── middleware
├── pubsub
├── router
├── session
└── worker
├── director
├── docker
└── pool

特にサーバ側の挙動として handlers 、 web 側として app/scripts を見ていれば概ね改造はできます。

また、クライアントサイドも angular.js に変わってしまったため魔術に翻弄されています。


ソースから立ち上げる

ソースから立ち上げるには README を見るよりも Dockerfile を参考にするのが速道です。


1. go / docker のインストール

適当なホスト(ubuntu 14が余計な手間がかからないので楽です)を借りて、 go / docker は こちら を参考にしてインストールして下さい。


2. drone の取得

go get github.com/drone/drone

上記コマンドを実行し、ソースを GOPATH の中に取ってきます。


3. drone イメージの作成

docker build -t drone/custom

として images を作成します

(customは弄る気マンマンを意味しています)


4. drone.toml の作成

README を参考にして github で application を登録して key / secret を取得したりします。

bitbucket も同じでした。

(この後 gitbucket を対応させたいと考えています)

でファイルは ./config/drone.toml


5. drone container の立ち上げ

entrypointとかちゃんと指定されているんですが、ちょこちょこといじりながら見て行きたいので --entrypoint=/bin/bash としてコンテナに入って自分で立ち上げます。

docker run -i --entrypoint=/bin/bash -p 80:8000 -v ~/go/src/github.com/drone/drone/config:/tmp -v /var/run/:/var/run -t drone/custom


NOTE: /var/run をマウントしているのは、ホスト側の docker に対してコンテナ内の drone からテスト用コンテナの生成を通すためです。


で、入った後は /usr/local/bin/droned に実行ファイルがあるので、

/usr/local/bin/droned --config=/tmp/drone.toml

とすれば、droneが80番ポートで立ち上がってきます。


6. ソースをいじって確認

この後は実際にコンテナ内でソースをいじり、確認します。

テストなどもありますが、とりあえず満足するところまではテストもbuildも端折って

go run server/main.go --config=/tmp/drone.toml

として色々試して下さい。


まとめ

まだまだ、いろいろと使い勝手が良くないところも残っているのでみんなで改善していければよいかと思います。

(いろいろと深淵なる事情でgheもtravis-ciも使いづらいので、 gitbucket <=> drone を構築して、連携させようとしています。)