gpt4 book ai didi

ruby - Capistrano 3/SSHKit 在自定义任务中写入文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:23 26 4
gpt4 key购买 nike

我想用我的发布号标记当前部署的目录。

我试过这种方法:

Get locally the app version, store it into a variable, and on the remote host, store it in a file.

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 进行了一些转义。

有什么线索吗?

最佳答案

我成功了:

1)我从机器上的repo目录中取出了版本号

2) 我通过上传将它用流写入文件!方法

namespace :deploy do
desc "Set a release number as the app version"
task :mark_release do
on roles(:web) do
within "/foo/bar/repo/" do
upload! StringIO.new(capture(:git, "describe")), "#{current_path}/RELEASE"
end
end
end
end

关于ruby - Capistrano 3/SSHKit 在自定义任务中写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20900015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com