読者です 読者をやめる 読者になる 読者になる

【Rails】【Capistrano】Capistranoでmasterブランチ以外のブランチでデプロイしたい場合

はじめに

デプロイの成功例と失敗例を試したいときに
「失敗したところのブランチでデプロイしたい」
ということが自分の中であったのでメモ。

※大体、勢いで直してしまうので「よし記事にしよう!」と思ったときに
その状態が残っておらず、失敗したところを再現しなければいけないと思ったため。

環境

前提条件

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でのデプロイ時に使える手だと思うので
必須の手だと思いました。覚えておきます。