Ruby on rails 如何使用Capistrano 3运行rvmrc信任命令

Ruby 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部署任务之前,是否

我正在使用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部署任务之前,是否有任何方法可以查看部署任务流


谢谢大家!

我终于知道怎么做了。问题是使用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'