Ich habe einen TeamCity Metarunner, der zwei Läufer konsolidiert. Der erste Läufer macht eine Menge Powershell-Zeug, um die richtige Octopus-Version zum Einsatz zu bringen, und es funktioniert gut. Der zweite Läufer versucht das zu entfalten.Werte innerhalb eines TeamCity Metarunner übergeben
<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>
So können Sie% ProjectRelease% sehen bekommt auf 1.2.3.45, und dieser Wert kann dann in nachfolgenden Build Schritten verwendet werden - alle dort gut. Jedoch für den zweiten Läufer, auf der Linie:
<param name="octopus_releasenumber" value="%ProjectRelease%" />
% ProjectRelease% immer noch gleich dem Standardwert ist („To bestückt sein“ und nicht „1.2.3.45“). Wie kann ich diesen Wert an den Runner "Projekt bereitstellen" übergeben?