有条件地向 Octopus Deploy 添加绑定

Add a binding conditionally To Octopus Deploy

我正在尝试有条件地添加绑定。

如果变量存在,我希望添加绑定。

例如说存在 foo, "hello I'm foo", Production,但 beta 不存在这样的 foo 变量,那么绑定将通过非测试版添加到生产中。

我想我的表情应该是这样的:

#{if foo } True #{if}

我从 here 的一个问题中得到了这个想法。

但是我在使用基本表达式时遇到了问题:

#{if 1 == 1} True #{if}

上面的绑定因错误而失败

"String was not recognized as a valid Boolean."

如何解决这个问题?

啊哈 - 第一次尝试时看起来像是一个小语法错误:

#{if foo}True#{/if}

您缺少用于结束表达式的斜线!

如果步骤需要,您可以扩展它以将 False 的值也放入:

#{if foo}True#{/if}#{unless foo}False#{/unless}

文档:https://octopus.com/docs/reference/variable-substitution-syntax#VariableSubstitutionSyntax-Conditionalsconditionals


值得注意的是,这正是变量作用域的用途...所以为什么不为 foo 创建一个变量,没有作用域,值为 False。然后你可以在生产范围内拥有第二个 foo 的 "copy",其值为 True

这意味着您的流程步骤将简单地将 #{foo} 作为值。


P.S。最近修复的表达式语法中有一个错误 (v 3.8.3),您可能一直感到痛苦:

发行说明:https://octopus.com/downloads/compare?from=3.7.18&to=3.8.3

具体问题:https://github.com/OctopusDeploy/Issues/issues/3089