はじめに
wercker CIでApplicationを新規作成したときにGoのテンプレートに下記のような記述を見かけました。
steps:
- setup-go-workspace
これは、主にGoパッケージを作ったとき向けのセットアップっぽく、オレオレフレームワークなどには使いにくかったので、ここを変更できたらいいなと思って調べていたら、どうも このレポジトリにあるrun.shを実行してるっぽく、setup-go-workspaceはwercker-step.ymlで定義されてるっぽい。
なんとなく、wercker-step.ymlとrun.shが必要そうってことはわかったけど、どうやって使うんだろうと思ったのがきっかけです。
そしてすぐにはわからなかったのでメモしておこうと思います。
stepの作成からそのstepの使用まで
独自stepの作成
ということで、まずwercker-step.ymlとrun.shという名前のファイルを用意します。
% mkdir wercker-step-helloworld && cd wercker-step-helloworld
% echo 'name: helloworld\nversion: 1.0.0' > wercker-step.yml
% echo 'echo "hello world!"' > run.sh
ドキュメントにあるようにwercker-step.ymlには、nameとversionだけが必須です。
run.shには、hello world!と表示するだけのスクリプトを書いておきます。
GitHubにレポジトリを作ってプッシュします。 ということで、プッシュしたものがこちら。 https://github.com/kwmt/wercker-step-helloworld
Wercker directoryにデプロイ
先ほど作成したものをwerckerに登録して公開する必要があります。
こちらからhttps://app.wercker.com/stepを作成します。
このとき先ほどwercker-step.ymlとかをプッシュしたレポジトリを指定します。
これでビルドが走ると思います。
これだけではまだ使えなくて、Wercker directoryというところにDeployする必要があります。
Wercker directoryにDeployするには、deploy targetを指定する必要がありますが、新しく追加しなくても、publish-stepというDeploy targetがすでに作成されてるはずなので、それを使います。
先ほどのビルドが成功したら、ビルドの詳細画面でBuild passedと出ている右側にDeploy toというドロップダウンがあるので、そこをクリックして、publish-stepというDeploy targetを指定し、Start deployをクリックするとデプロイされます。
デプロイされると下記URLのような感じになります。 https://app.wercker.com/applications/585f2630d8cb9e0100c142c4/tab/details/
自作したstepをwercker.ymlで使う
自作したstepを使うには、wercker.ymlに次のように記述します。
steps:
- kwmt/helloworld
これでwerckerを走らせると、
hello world!が出力されてることがわかると思います。
おわりに
wercker-box.ymlというのもあってwercker directoryにデプロイするなどは同じっぽいのでこちらはさくっとできそうですね。
今気づきましたが、werckerのgolangのboxって、今日(2016/12/25)時点で、go1.5なんですね。。
https://github.com/wercker/box-golang


