Help us understand the problem. What is going on with this article?

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

muddydixon
JavaScript (HTML5, Node, jQuery) Perl R Hadoop MongoDB DataMining MachineLearning InfoGraphics
http://muddydixon.hatenablog.com
tver-technologies
Innovate TVision, Designing Value / テレビ・動画配信の可能性を切り拓き、新しい価値をデザインしていきます。
https://www.tver-tech.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away