概要
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 を構築して、連携させようとしています。)