画像

昨日[2014-09-14-1] の記事より。

wercker.ymlも毎回Vagrantをインストールして、vagrant upするという無
駄なことをしているので、Docker使って時短させるかもしれない。

この場合Dockerは間違い。Wercker的にはBox使うのが正解なので作ってみ
ました。(このくらいのBoxはあるかと思ったらなかったのが意外でした。)

以下のようにinheritsを使うと、任意のBoxを継承できるみたいです。
ちょっと前までwercker.ymlに複数書けばそうなるかと思ってました。

inherits: wercker/[email protected]

実コードはスクリプトのベタ書きだけです。

script: |
  VAGRANT_VERSION=1.6.5
  wget https://dl.bintray.com/mitchellh/vagrant/vagrant_${VAGRANT_VERSION}_x86_64.deb
  sudo dpkg -i vagrant_${VAGRANT_VERSION}_x86_64.deb
  vagrant plugin install vagrant-aws unf

あとはWerckerの管理画面からGitHubのリポジトリを登録し、Wercker
directoryにデプロイすれば使えます。Public Appにすることをお忘れなく。

wercker.ymlはこのようになりました。昨日 と比べるとBoxがwercker/rvmか
らmasutaka/rvm-vagrant-awsに変わったことと、vagrantやvagrant-awsプ
ラグインをインストールしてないのが分かると思います。

Boxの作り方自体はこちらが参考になると思います。

werckerで自分のBOXを作ってみた - 紺屋高尾

11分33秒かかっていたテストが10分46秒に短縮されました!
って、あれ、あんまり変わってない。。
パフォーマンス云々より、Dockerっぽく改善できたので良しとします。

今度はEC2使わずにWerckerでDocker立ち上げてCIしたいなあ。