【问题标题】:How to add an if staging check to Capistrano task?如何向 Capistrano 任务添加 if staging 检查?
【发布时间】:2023-12-10 03:46:02
【问题描述】:

现在在 Capistrano 我正在做它

execute "echo #{fetch(:stage)}"

这与“分期”相呼应

在我的下一行

if fetch(:stage) == "staging"

永远不等于真。我尝试将其更改为 if "staging == "staging" 并进入它的主体。呃,提供了什么以及如何进行检查以仅运行一行代码进行暂存。

【问题讨论】:

  • 试试execute "echo #{fetch(:stage).inspect}"。舞台可能是一个象征。
  • "which never runs" - 从不运行或从不进入 this 的主体,如果?准确。
  • @SergioTulentsev 是的,做到了!我不知道检查。谢谢!随时将其发布为答案,以便我接受。抱歉,Ruby 新手,使用 Capistrano 部署 PHP 项目,所以编写这个配置文件对我来说是全新的。
  • PHP 没有符号,IIRC,所以混淆是可以理解的 :) 但是 PHP 没有自己的部署工具吗?
  • @SergioTulentsev 不多,而且我尝试过的都是付费/托管或垃圾功能明智的。不过,现在已经完全配置了 Capistrano,这真是太棒了。希望尽快了解更多Ruby。 =]

标签: ruby capistrano


【解决方案1】:

fetch(:stage) 可能是一个符号(我已经有一段时间没有使用 capistrano 了)。要验证这一点,请使用更精确的字符串表示:

execute "echo #{fetch(:stage).inspect}"

我打赌它会打印出:staging。在这种情况下你需要做

if fetch(:stage) == :staging

【讨论】: