【发布时间】:2014-01-20 21:48:04
【问题描述】:
我想用我的版本号标记当前部署的目录。
我试过这种方法:
在本地获取应用版本,将其存储到变量中,然后在远程主机上,将其存储在文件中。
namespace :deploy do
desc "Set a release number as the app version"
task :mark_release do
release_number = `git describe`
on roles(:web) do
execute("echo #{release_number} > #{current_path}/RELEASE")
end
end
end
问题是,当我通过以下方式运行它时:
cap deploy:mark_release
命令如下所示:
echo v9.3.0-254-g178d1f8; > /foo/bar/current/RELEASE
分号惹麻烦了。我的 RELEASE 文件当然是空的。
我认为这是由于 SSHKit 进行了一些转义。
有什么线索吗?
【问题讨论】:
-
你需要用引号转义版本号 execute("echo \"#{release_number}\" > #{current_path}/RELEASE")
标签: ruby git deployment capistrano3 sshkit