2017-01-12 48 views
3

我试图在“运行脚本”步骤中将值分配给内置发行说明变量。如何在Octopus中设置系统变量值从PowerShell部署

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

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

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

是否有可能从PowerShell的设置八达通部署系统变量值,并在下一步使用它呢?

我正在使用Octopus Deploy 3.7.11。

编辑:

我也曾尝试该cmdlet Set-OctopusVariable并没有奏效。

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

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

回答

2

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

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

那么‘发送电子邮件’ - 工序可以通过以下(假设第一步骤被称为参考本文‘FirstStep’):

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

的变量也可以在其他步骤脚本中使用,那么使用语法:

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

(如果您想保存生成的releasenote也许你可以将其保存为“artifact “ 在项目中)。

+0

是的,我已经这样做,它的工作原理。我最初的想法是填充内置发行说明变量,以便发布说明显示在特定版本中。 –

0

好了,小的研究后,似乎还有的Set-OctopusVariable cmdlet时,你可以在你的部署使用。

+1

我试过这个cmdlet,但它不起作用,这意味着它没有设置变量值。 –