【问题标题】:How to set system variable value in Octopus Deploy from PowerShell如何从 PowerShell 在 Octopus Deploy 中设置系统变量值
【发布时间】:2025-12-25 22:25:11
【问题描述】:

我正在尝试在“运行脚本”步骤中为内置发行说明变量赋值。

$OctopusParameters["Octopus.Release.Notes"] = "Some release notes"

在下一步“发送电子邮件”中,我在电子邮件正文中使用此变量,但不幸的是它是空的。

<p>#{Octopus.Release.Notes}</p>

是否可以通过 PowerShell 设置 Octopus Deploy 系统变量值并在下一步中使用?

我正在使用 Octopus Deploy 3.7.11。

编辑:

我也尝试了 cmdlet Set-OctopusVariable,但它不起作用。

Set-OctopusVariable -name "Octopus.Release.Notes" -value "Something"

【问题讨论】:

  • 这与我的问题有什么关系?我在问如何在 Octopus Deploy 中设置变量而不是 Windows 中的环境变量。

标签: octopus-deploy


【解决方案1】:

我认为不可能覆盖 Octopus Deploy 提供的内置变量的值。但是您可以定义自己的输出变量并在以下步骤中引用它。例如,在您的“运行脚本”步骤中使用:

Set-OctopusVariable -name "MyReleaseNote" -value "Some text here"

那么“Send an Email”-step 可以通过以下方式引用此文本(假设第一步称为“FirstStep”):

#{Octopus.Action[FirstStep].Output.MyReleaseNote}

该变量也可以在其他步骤中从脚本中使用,然后使用语法:

$relnote = $OctopusParameters["Octopus.Action[FirstStep].Output.MyReleaseNote"]

(如果您想保存生成的发布说明,也许您可​​以将其保存为项目中的“artifact”)。

【讨论】:

  • 是的,我已经这样做了,而且它有效。我最初的想法是填充内置的发行说明变量,以便在特定版本中显示发行说明。
【解决方案2】:

我使用 Octoposh 进行了尝试。 Octoposh wiki Modifying Variables - Edit a variable of a Project/Library variable set 中介绍了修改现有变量。

由于我们的网络超时,我无法让它工作,但它看起来应该工作 - 只是不像我预期的那样简单。

【讨论】: