# config/deploy.rb:
set :default_stage, "staging"
こう書くとcap deploy
でデフォルトstagingに行くようになる。
# config/deploy.rb:
set :default_stage, "staging"
こう書くとcap deploy
でデフォルトstagingに行くようになる。
Macを再インストールしたのでrvmが新しくなったからか、capれない。
% bundle exec cap staging deploy
/Users/komagata/.rvm/lib/rvm/capistrano.rb:5:in `': RVM - Capistrano integration was extracted to a separate gem, install: `gem install rvm-capistrano` and remove the `$LOAD_PATH.unshift` line, note also the 'set :rvm_type, :user' is now the default (instead of :system). (RuntimeError)
長いエラーをちゃんと読むと、rvmのcapistrano関連の部分はrvm-capistranoとして別gemになったようです。Gemfileに追加します。
group :development do
gem 'rvm-capistrano'
end
また「$LOAD_PATH.unshiftしてんのを取れ」と出てるので大抵の人はRAILS_ROOT/config/deploy.rb
に書いてる下記を取ればOK。
$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # REMOVE ME!
コンパイラが変わるという大転換期なので仕方無いとは思いますが、Xcode依存のゴタゴタはプログラマーにも厄介。デザイナーさんに環境作ってと気軽に言い辛いここ最近のMac環境です…。
# config/deploy.rb
set :git_shallow_clone, 1
Added --depth 1
option to deploy command if use this setting.
rails + jenkinsでgithubにpushしたらテストというところまでは下記を参照してください。
ウェブオペレーションで継続的デプロイというキャッチーな単語を知ったので試してみた。
継続的デプロイなんつっても、上記の様にいつものテストにcapのタスクを追加するだけ。簡単。
githubにpushされると勝手にjenkinsが動き出して…
ステージング環境にデプロイ。
これでデザイナーの@machidaさんがgit pushした時も勝手にステージング環境が最新になる。デザインが変わっただけでも頻繁にデプロイされるので問題点などが議論し易い。(特にスマホサイトは実機からアクセス出来る環境があると便利。)
最近はデザイナーも簡単にGithubが使える環境が揃ってきたので、テスト・開発・チェックイン・デプロイというサイクルにデザイナーが入る良いタイミングかも。
Using Capistrano with rvm and bundler.
# config/deploy.rb:
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
set :rvm_ruby_string, 'ruby-1.8.7-p352@kowabana' # Add gemset name if you want to use gemset.
set :rvm_type, :user # If rvm didn't installed to system wides.
# config/deploy.rb:
require 'bundler/capistrano'
It's all. When run cap deploy:update
, Capistrano install gem in shared/bundle
.
capistranoで小ハマリ。
Emacsとかcapistranoとかコマンド経由でCentOSにsudoすると「ttyが無い」的なメッセージが出て出来ない。
$ sudo diff sudoers.org sudoers
56c56
< Defaults requiretty
---
> #Defaults requiretty
visudoでDefaults requirettyという行をコメントアウトすれば行けるみたい。
Defaults visiblepw
recipeに下記を追加
default_run_options[:pty] = true