Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Jenkinsオジサンからの卒業その4(werckerを試してみた)

Wercker

wercker.com

git push からのビルドとデプロイを自動化することを目的に作られたサービス。ビルドの後続処理をPipelineで繋いでいけるのが醍醐味らしい。

使い方

  • アカウントの作成は、独自アカウント作成 or GitHub連携で可能
  • 自動ビルドさせたいリポジトリを選択する
  • 対象リポジトリの設定を幾つかやる
    • deploy key の自動登録を任せるのが一番楽
  • 対象リポジトリのルートに wercker.yml を配置する
    • ここで気付いたけど、werckerがデフォルトで yml サンプル定義を提供しているのは、 GoLang, NodeJS, Python, Ruby ということが判明し、もしやJavaには対応していないんじゃないのorz として企画に幕を下ろしかけた
      • けども、いやまてよ。Dockerコンテナでコマンド実行するだけの汎用的な仕組みなら java 用のコンテナを指定しつつ Drone.io と同様に gradlew とかでビルドできるのではないか
  • ということで、Java ビルドがしたければ、ボックスの指定を box: java:8 とかにするべし
    • Gradleを使いたい場合は、gradlew 一式をリポジトリにcommitすること推奨
      • ビルドコマンドはこんな感じ
steps:
  - script:
      name: gradlew
      code: |
        ./gradlew
  - script:
      name: gradle build and test
      code: |
        ./gradlew check

色々と試行錯誤をしましたが、結果的にはちゃんとビルドできました☆

自動ビルドのトリガー

  • Push
    • default branch 以外のPushもブランチを区別してビルド結果を残してくれる
  • GitHub上のPRとも連携してくれる
    • ビルドがとおったPR(commit)か?が確認できて便利

ビルド結果

  • build badge のURLを提供
    • 過去数回分のビルド結果がRed/Greenの色分けで見れて、コードの安定度の目安にできるかも
  • ビルド成果物(Artifacts)の保存
    • できるのかもしれないけど、方法わからず
  • Mail通知
  • Slack通知

初めはヒントが少なくて戸惑いましたが、UIもイケてるし、多重度2まではFreeで使えるし、リポジトリ&開発者は無制限な模様。なかなか良い感じなのではないかと。

その他

  • 内部的にはコンテナ上でビルドが走る
    • 各ステップの詳細ログが見れる
  • UIはいい感じに今風
  • そういえば、醍醐味である自動デプロイや、Pipeline設定は試していなかった...

SampleでWerckerビルドを設定してみたリポジトリはコチラ
https://github.com/shionit/sample-wercker