[2013-05-27-2]
で書いたとおり、このブログのサーバmasutaka.netは
Chef-soloでレシピを、serverspecでそのテストを書いています。
ソースコードはGitHubのプライベートリポジトリに置いており、お金をか
けてまでやる気が出なかったのでCIはしていませんでした(※)。
※ CircleCIの場合、一番安いプランで$19/month
はてブのホットエントリでこちらの記事を見つけたので、serverspecのCI
を設定してみました。
Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる|mah365
serverspec固有の設定
基本的な手順は記事のとおりなので、詰まることはないと思います。
ただしserverspecはssh経由で動作するため、sshの設定が必要です。
(1) WerckerのサイトでSSH key pairを作成する
(2) ユーザmasutakaとしてssh接続する設定をする
(3) ssh接続した時にknown_hostsに追加するか聞かれない設定をする
(1)は以下のサイトが参考になりました。
wercker + Capistrano で自動デプロイ - milk1000cc’s blog
wercker.ymlの中で秘密鍵を $WERCKER_SSH_KEY_PRIVATE として参照できる
ようになります。公開鍵はmasutaka.net:~/.ssh/authorized_keysに追記します。
最終的なwercker.yml
(1)の秘密鍵$HOME/.ssh/id_rsaは39行目で作っています。
(2)と(3)は26行目で$HOME/.ssh/configに設定しています。
(2)は33行目の"User masutaka"、(3)は34行目の"StrictHostKeyChecking no"です。
見たまんまですが、serverspecは49行目で設定しています。
wercker.ymlの書式
基本的な書式は http://devcenter.wercker.com/articles/werckeryml/
で
分かると思います。wercker.ymlのValidaterもありました。
bundle-installやcreate-fileは拡張という扱いなのか、
https://app.wercker.com/#wercker
にアプリとして存在してました。
ドキュメントもあるので、必要に応じてどうぞ。
ビルド結果
Werckerの各アプリのページでもちろん分かりますが、
各Pull Requstのページでも分かるので、今後はローカルでTest&Cookして
Pull Requst出す、ビルドが通っていればmasterにマージという使い方をし
そうです(Collaboratorはもちろん私一人)。
Werckerバッジ
TravisCIやCircleCIでお馴染み、ビルドステータスが分かるバッジも
各アプリのページ、右上から取得できます。
README.mdに追加しました。