Что я хочу сделать
У меня есть приложение Rails, которое задокументировано с использованием YARD .Когда я развертываю приложение Rails на его сервере приложений ( AS ) с помощью Capistrano, я хочу также загрузить сгенерированные YARD HTML-документы на «сервер документации» ( DS ) - пустошикомпьютер, на котором работает веб-сервер nginx;полностью отделенный от 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 , я все еще не понимаю, как выполнить простую задачу, подобную этой.
Чего мне не хватает?