プライベートなプロジェクトでもRSpecをデプロイのたびに実行したくて、『wercker』を使い始めましてた。
個人的には、Bitbucketのプライベートリポジトリを使って、RSpecで継続的インテグレーションしつつ、CapistranoでDeployできる
一連のプロセスが無料でスピーディに実現できるのでプライベートプロジェクトにめっちゃオススメです!
😼 競合サービスとの比較
無料で使いはじめることができるCIツールには、『Circle CI』や
『Magnum CI』などがありますが、日本語の情報が多く、Bitbucketのプライベートリポジトリが使える点を
考えて、『wercker』を選択しました。
🗽 前提: アプリケーションの環境について
今回は以下のアプリケーション構成を対象としています。
- アプリ構成 - Ruby 2.2.0 - Rails 4.2.0 - RSpec 3.1.0 - デプロイ先のサーバ構成 - CentOS - RVM - リモートリポジトリ - Bitbucket
🏀 weckerでユーザーを作成 & アプリケーション登録
(1) GitHubかBitbucketにリポジトリを作ってアプリケーションのコードをプッシュ
(2)『wercker』でユーザー登録
(3) werckerで、GitHubかBitbucketのアカウントと連携
(4) werckerにアプリケーションのリポジトリを登録
(5) GitHub or Bitbucket側で『werckerbot』ユーザーをコラボレーターに追加
ユーザー登録のフローに関しては、『Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる』
がわかりやすくてオススメっす!
🚕 wercker.ymlの設定
werckerでは、RailsプロジェクトのRootパスにwercker.yml
を作成すると
そのステップに沿って、スクリプトを実行できます。
ちなみに僕は上記の『アプリケーション構成』でRSpecとCapistranoでデプロイするスクリプトはこんな感じです。
box: wercker/rvm |
🐠 環境変数の設定
(1) デプロイ用のブランチ名とターゲット名を設定
wercker => アプリケーション => Settings => Deploy Target
にDeploy Targetで「production」を作成し、branch名「マスタ」を
設定してください。
(2) サーバの認証鍵の設定
こちらは任意の設定ですが、オススメの鍵情報の設定は、『wercker => アプリケーション => Settings => SSH Keys』
からwerckerデプロイ専用の鍵を作って設定する方法です。
もし何らかの事情で独自の鍵情報を使いたい場合には、『wercker => アプリケーション => Settings => PIPLINE』
に独自の環境変数DEPLOY_KEY
(例)を作って、秘密鍵を登録しています。
🎂 werckerでRSpecを実行
あとはいつもとおり、Gitにソースコードをプッシュすると、自動的にwerckerでCIが実行されます。
CIが成功すると、werckerからDEPLOYボタンが押せるようになるので、それを実行するとCapistranoのタスクを実行してくれます。
😎 参考リンク
Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる | mah365
wercker + Capistrano で自動デプロイ - milk1000cc’s blog
Werckerの仕組み,独自のboxとstepのつくりかた | SOTA
Werckerのデプロイボタンはなんだかんだ言って便利だった / マスタカの ChangeLog メモ