Ruby on rails 如何使用Capistrano 3运行rvmrc信任命令
我正在使用Capistrano 3,需要运行rvmrc trust命令进行部署 我将此代码添加到了deploy.rbRuby on rails 如何使用Capistrano 3运行rvmrc信任命令,ruby-on-rails,deployment,rvm,capistrano3,Ruby On Rails,Deployment,Rvm,Capistrano3,我正在使用Capistrano 3,需要运行rvmrc trust命令进行部署 我将此代码添加到了deploy.rb namespace :rvm do task :trust do execute :rvm, "rvmrc trust #{fetch(:current_release)}" end end after 'deploy:updated', 'rvm:trust' 但是任务没有执行 如何使用Capistrano 3执行rvmrc信任 在运行cap部署任务之前,是否
namespace :rvm do
task :trust do
execute :rvm, "rvmrc trust #{fetch(:current_release)}"
end
end
after 'deploy:updated', 'rvm:trust'
但是任务没有执行
如何使用Capistrano 3执行rvmrc信任
在运行cap部署任务之前,是否有任何方法可以查看部署任务流
谢谢大家! 我终于知道怎么做了。问题是使用release_path返回当前路径、符号链接,而不是实际路径。所以我开始在网上搜索
# file: lib/capistrano/tasks/rvmrc.cap
namespace :rvmrc do
desc "Trust rvmrc file"
task :trust do
on roles(:app) do
releases = capture("ls #{File.join(fetch(:deploy_to), 'releases')}")
if this_host_last_release = releases.split("\n").sort.last
execute "~/.rvm/bin/rvm rvmrc trust #{releases_path}/#{this_host_last_release}"
end
end
end
end
# file: deploy.rb, in the end
after :finishing, 'rvmrc:trust'
capistrano-3.4.0的更新解决方案:
# file: lib/capistrano/tasks/rvmrc.rake
namespace :rvmrc do
desc "Trust rvmrc file"
task :trust do
on roles(:all) do
command = "rvmrc trust #{release_path}/#{fetch(:current_revision)}"
execute :rvm, command
end
end
end
before 'deploy:set_current_revision', 'rvmrc:trust'