【发布时间】:2018-10-18 03:03:02
【问题描述】:
我有一个合并两个跑步者的 TeamCity 元跑步者。第一个跑步者做了一堆 Powershell 的东西来获得正确的 Octopus 版本来部署,它运行良好。第二个跑步者尝试部署它。
<build-runners>
<runner name="Get project release for current branch" type="jetbrains_powershell">
<parameters>
<param name="jetbrains_powershell_bitness" value="x86" />
<param name="jetbrains_powershell_execution" value="PS1" />
<param name="jetbrains_powershell_minVersion" value="4.0" />
<param name="jetbrains_powershell_script_code"><![CDATA[
#Do some powershell stuff here to get the right release
$ProjectRelease="1.2.3.45"
Write-Output "##teamcity[setParameter name='ProjectRelease' value='$ProjectRelease']"
Start-Sleep -s 10
]]></param>
<param name="jetbrains_powershell_script_mode" value="CODE" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
<runner name="Deploy Project" type="octopus.deploy.release">
<parameters>
<param name="octopus_additionalcommandlinearguments" value="--specificmachines=%AgentList%" />
<param name="octopus_deployto" value="%Octopus.EnvironmentName%" />
<param name="octopus_host" value="%system.Octopus-prod_ServerUrl%" />
<param name="octopus_project_name" value="%ProjectName%" />
<param name="octopus_releasenumber" value="%ProjectRelease%" />
<param name="octopus_version" value="3.0+" />
<param name="octopus_waitfordeployments" value="true" />
<param name="secure:octopus_apikey" value="zxx318ab49dce685b0ae65d94a963ff326672f51fb87c685575c3b6ed4f6eb8a569" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
</build-runners>
所以您可以看到 %ProjectRelease% 设置为 1.2.3.45,然后可以在后续构建步骤中使用该值 - 一切都很好。但是对于第二名,就行了:
<param name="octopus_releasenumber" value="%ProjectRelease%" />
%ProjectRelease% 仍然等于默认值(“待填充”而不是“1.2.3.45”)。如何将此值传递给 Deploy Project 运行器?
【问题讨论】:
标签: powershell teamcity