wercker

werckerの独自stepの作り方

More than 1 year has passed since last update.


はじめに

wercker CIでApplicationを新規作成したときにGoのテンプレートに下記のような記述を見かけました。

steps:

- setup-go-workspace

これは、主にGoパッケージを作ったとき向けのセットアップっぽく、オレオレフレームワークなどには使いにくかったので、ここを変更できたらいいなと思って調べていたら、どうも このレポジトリにあるrun.shを実行してるっぽく、setup-go-workspacewercker-step.ymlで定義されてるっぽい。

なんとなく、wercker-step.ymlrun.shが必要そうってことはわかったけど、どうやって使うんだろうと思ったのがきっかけです。

そしてすぐにはわからなかったのでメモしておこうと思います。


stepの作成からそのstepの使用まで


独自stepの作成

ということで、まずwercker-step.ymlrun.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には、nameversionだけが必須です。

run.shには、hello world!と表示するだけのスクリプトを書いておきます。

GitHubにレポジトリを作ってプッシュします。

ということで、プッシュしたものがこちら。

https://github.com/kwmt/wercker-step-helloworld


Wercker directoryにデプロイ

先ほど作成したものをwerckerに登録して公開する必要があります。

こちらからhttps://app.wercker.com/stepを作成します。

create-wercker-step.png

このとき先ほど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をクリックするとデプロイされます。

specify-deploy-target.png

デプロイされると下記URLのような感じになります。

https://app.wercker.com/applications/585f2630d8cb9e0100c142c4/tab/details/


自作したstepをwercker.ymlで使う

自作したstepを使うには、wercker.ymlに次のように記述します。

steps:

- kwmt/helloworld

これでwerckerを走らせると、

run-my-wercker-step.png

hello world!が出力されてることがわかると思います。


おわりに

wercker-box.ymlというのもあってwercker directoryにデプロイするなどは同じっぽいのでこちらはさくっとできそうですね。

今気づきましたが、werckerのgolangのboxって、今日(2016/12/25)時点で、go1.5なんですね。。

https://github.com/wercker/box-golang