werckerの独自stepの作り方

Posted by on Sun, Dec 25, 2016

はじめに

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を作成します。

このとき先ほど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



comments powered by Disqus