はじめに
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