我有一个使用YARD记录的Rails应用程序。当我使用Capistrano将Rails应用程序部署到其应用程序服务器( AS )时,我还想将YARD生成的HTML文档上传到“文档服务器”( DS )—运行nginx Web服务器的准系统机器;与 AS 完全分开。
我可以在Capistrano中使用简单的字符串变量轻松地做到这一点。像这样:
set :doc_user, 'user'
set :doc_sever, 'my.server.com'
task :yard do
run_locally do
execute 'yardoc -q'
command = "rsync -aqzP doc/ #{fetch(:doc_user)}@#{fetch(:doc_server)}:~/doc"
end
end
但是我认为这看起来不太像Capistrano,所以我想使用服务器/角色和正确的Capistrano语法来做到这一点。我什至尝试了一个非常简单的任务,例如:
role :yard, %w{user@my.server.com}
server 'my.server.com', user: 'user', roles: %w{yard}
task :yard do
on roles(:yard) do
execute 'hostname; uptime'
end
end
但是Capistrano似乎将此服务器解释为另一个将应用程序部署到的 AS 。仔细阅读Capistrano's documentation的每一页之后,我仍然不知道如何完成这样的简单任务。
我想念什么?