【Rails】【Capistrano】Capistranoでmasterブランチ以外のブランチでデプロイしたい場合
はじめに
デプロイの成功例と失敗例を試したいときに
「失敗したところのブランチでデプロイしたい」
ということが自分の中であったのでメモ。
※大体、勢いで直してしまうので「よし記事にしよう!」と思ったときに
その状態が残っておらず、失敗したところを再現しなければいけないと思ったため。
環境
- OS X El capitan
- Ruby 2.3.0
- Ruby on Rails 4.2.4
- Capistrano 3.4.0
前提条件
Capistranoでデプロイできている状態とします。
やり方
deploy.rbに以下のように記述します。
set :branch, ENV['BRANCH'] || "master"
そして、実行する際は以下のように書きます。 例:developブランチでStaging環境の場合
$ BRANCH=develop cap staging deploy
指定したブランチでデプロイされます。
以下、その時のログの抜粋
$ DEBUG [1e078acd] Command: cd /var/www/sample/repo && ( RBENV_ROOT=/usr/local/rbenv PATH=/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH RBENV_VERSION=2.3.0 GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/sample/git-ssh.sh /usr/bin/env git rev-list --max-count=1 --abbrev-commit develop ) ...中略... $ INFO [xxxxxx] Running /usr/bin/env echo "Branch develop (at develop) deployed as release 20160422001729 by FujiYasu" >> /var/www/sample/revisions.log as www@192.168.33.20 $ DEBUG [xxxxxx] Command: echo "Branch develop (at develop) deployed as release 20160422001729 by FujiYasu" >> /var/www/sample/revisions.log
この辺の設定は、Jenkinsでのデプロイ時に使える手だと思うので
必須の手だと思いました。覚えておきます。