しまてく

学んだ技術を書きためるブログ

drone.ioでBitbucketと連携してGoをビルド&テストしてみた。

こんにちは

実に3年ぶりにBlogを再開してみました。 *1 

文章を書く、というリハビリもかねてゆるゆると技術情報ネタでまた
ブログを書いていこうと思います。

ということで再開記念の第一回目は drone.ioを使ってBitbucketに登録している
プライベートリポジトリをビルド&テストしてみようと思います。

 

今までは執事のおじさんと戯れていたんですがどうにも職人の朝は早い状態に
なってしまっていて、新しいものを探していました。

GitHubならTravis CIやCircle CIがありますがあくまでBitbucketで、という中で
drone.ioをチョイス。

使う言語がgolangなのは最近のマイブーム。

つかうもの

  • Bitbucket (https://bitbucket.org/)
    • 無料でいくらでもプライベートリポジトリを作れるのがGood。
    • 課金要素はユーザー数。
  • drone.io (https://drone.io/)
    • Public Projectならいくつでも無料。
    • Private Projectにしたければ$25/monthから。

Bitbucketにgolangリポジトリを作成。

f:id:cimadai:20151128202122j:plain

ソースコードとテストコードはこんな感じ。

 

drone.ioを設定。

「New Project」から新しく作成を初めて、
f:id:cimadai:20151128202143j:plain

Bitbucketを選び、
f:id:cimadai:20151128202153j:plain

 

Go君を選びます。
f:id:cimadai:20151128205539j:plain

 

ビルドスクリプトは上から逐次実行されます。
f:id:cimadai:20151128202202j:plain

 

いろいろ設定できるみたいですが早速「Build Now」しちゃいます。
f:id:cimadai:20151128202208j:plain

 

はい、うまくいったようです。
f:id:cimadai:20151128202216j:plain

 

次にわざと失敗するようにソースコードを変えてpushしてみます。
f:id:cimadai:20151128202232j:plain

おお、勝手にビルドが走って失敗になってます!

もう一度ソースコードを正しく直してpushしなおします。
f:id:cimadai:20151128202235j:plain

 

Bitbucket側はどうなっているのか?

気になって確認してみると、Deployment keysとIntegrationsのServicesでPOSTフックが追加されていました。
f:id:cimadai:20151128202240j:plain

 

f:id:cimadai:20151128202242j:plain

こういう連携をサクサクっとやってくれるというのは便利なものですね。 
drone.ioのBuild Scriptは自由にかけるので大体のことはできそうな感じです。

 

まとめ

  • drone.ioは使い始めるまでがものすごく簡単。
  • Bitbucketはプライベートリポジトリが作り放題なので業務用途で嬉しい。
  • 職人芸はいらなくなるか?

 

参考にしたURL

*1:昔書いていたはてダ  http://d.hatena.ne.jp/cimadai/