大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 内置Capistrano变量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/recipes/deploy.rb
更新:v3不再具有与v2相同的配置选项.我链接了上面的v2配置选项,但v3具有以下内容:
这是传统的,保留在这篇文章:
# ========================================================================= # these variables MUST be set in the client capfiles. If they are not set,# the deploy will fail with an error. # ========================================================================= _cset(:application) { abort "Please specify the name of your application,set :application,'foo'" } _cset(:repository) { abort "Please specify the repository that houses your application's code,set :repository,'foo'" } # ========================================================================= # these variables may be set in the client capfile if their default values # are not sufficient. # ========================================================================= _cset(:scm) { scm_default } _cset :deploy_via,:checkout _cset(:deploy_to) { "/u/apps/#{application}" } _cset(:revision) { source.head } _cset :rails_env,"production" _cset :rake,"rake" # ========================================================================= # these variables should NOT be changed unless you are very confident in # what you are doing. Make sure you understand all the implications of your # changes if you do decide to muck with these! # ========================================================================= _cset(:sourcE) { Capistrano::Deploy::SCm.new(scm,self) } _cset(:real_revision) { source.local.query_revision(revision) { |cmd| with_env("LC_ALL","C") { run_locally(cmd) } } } _cset(:strategy) { Capistrano::Deploy::Strategy.new(deploy_via,self) } # If overriding release name,please also SELEct an appropriate setTing for :releases below. _cset(:release_Name) { set :deploy_timestamped,true; Time.now.utc.strftime("%Y%m%d%H%M%S") } _cset :version_dir,"releases" _cset :shared_dir,"shared" _cset :shared_children,%w(public/system log tmp/pids) _cset :current_dir,"current" _cset(:releases_path) { File.join(deploy_to,version_dir) } _cset(:shared_path) { File.join(deploy_to,shared_dir) } _cset(:current_path) { File.join(deploy_to,current_dir) } _cset(:release_path) { File.join(releases_path,release_Name) } _cset(:releases) { capture("#{try_sudo} ls -x #{releases_path}",:except => { :no_release => true }).split.sort } _cset(:current_releasE) { releases.length > 0 ? File.join(releases_path,releases.last) : nil } _cset(:previous_releasE) { releases.length > 1 ? File.join(releases_path,releases[-2]) : nil } _cset(:current_revision) { capture("#{try_sudo} cat #{Current_path}/REVISION",:except => { :no_release => true }).chomp } _cset(:latest_revision) { capture("#{try_sudo} cat #{Current_releasE}/REVISION",:except => { :no_release => true }).chomp } _cset(:previous_revision) { capture("#{try_sudo} cat #{previous_releasE}/REVISION",:except => { :no_release => true }).chomp if previous_release } _cset(:run_method) { fetch(:use_sudo,truE) ? :sudo : :run } # some tasks,like symlink,need to always point at the latest release,but # they can also (ocCassionally) be called standalone. In the standalone case,# the timestamped release_path will be inaccurate,since the directory won't # actually exist. This variable lets tasks like symlink work either in the # standalone case,or during deployment. _cset(:latest_releasE) { exists?(:deploy_timestamped) ? release_path : current_release } _cset :maintenance_basename,"maintenance" _cset(:maintenance_template_path) { File.join(File.dirname(__FILE__),"templates","maintenance.rhtml") }
以上是大佬教程为你收集整理的ruby-on-rails – 内置Capistrano变量全部内容,希望文章能够帮你解决ruby-on-rails – 内置Capistrano变量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。