gpt4 book ai didi

capistrano - 如何在 capistrano 的 deploy.rb 中设置条件变量

转载 作者:行者123 更新时间:2023-12-04 14:04:10 28 4
gpt4 key购买 nike

来自 deploy.rb 的片段

task :prod1 do
set :deploy_to, "/home/project/src/prod1"
end

task :prod2 do
set :deploy_to, "/home/project/src/prod2"
end

我有两个像上面这样的任务。现在,我不想手动运行“cap prod1 deploy”或“cap prod2 deploy”,而是想创建一个任务“prod”,它根据服务器上是否存在文件来设置所需的“deploy_to”。

就像是:
task :prod do
if (A_FILE_IN_SERVER_EXISTS)
set :deploy_to, "/home/project/src/prod2"
else
set :deploy_to, "/home/project/src/prod1"
end

我怎么做?

最佳答案

你可以这样做:

task :set_deploy_to_location do
if capture("[ -f /etc/passwd2 ] && echo '1' || echo '0'").strip == '1'
set :deploy_to, "/home/project/src/prod2"
else
set :deploy_to, "/home/project/src/prod1"
end
logger.info "set deploy_to = #{deploy_to}"
end

这将满足您的需求。您可以像这样使用 before 和 after Hook 来 Hook 此方法:
before :deploy, :set_deploy_to_location

关于capistrano - 如何在 capistrano 的 deploy.rb 中设置条件变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996574/

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