TeamCityでpowershellを使用してメタデータファイルを生成するメタランナーを作成しようとしていましたが、別のvcsルートを反復処理する方法があるのだろうかと思いました。TeamCity - powershellでvcsルーツを繰り返す
マイコード:
$fileName = "metadata.json"
$vcsArray = @()
for ($i = 0; $i -le 5; $i++)
{
$vcsObject= @{
"VCSNumber"="%build.vcs.number.Proj_App_TcTestApp%"
}
$vcsArray += $vcsObject
}
$content = @{
"TeamCityBuildLogUrl" = "http://teamcity.hps.com/viewLog.html?buildId=%teamcity.build.id%&tab=buildResultsDiv&buildTypeId=%system.teamcity.buildType.id%";
"TeamCityProjectName" = "%system.teamcity.projectName%";
"TeamCityBuildNumber" = "%system.build.number%";
"BuildDateGenerated" = (Get-Date).ToString();
"TeamCityExecutionAgentName" = "%teamcity.agent.name%";
"VCSes" = $vcsArray
}
}
$content = $content | Add-Member @{"VCS Version2" = "testValue"} -PassThru # How to add more members dynamically.
$content = ConvertTo-JSON $content
New-Item $fileName -type file -force -value "// Metadata file generated by TeamCity`n"
Add-Content $fileName $content
cat $fileName # Test afterwards
私は別のルートを追加すると、根の名前は、私は技術的に名を知らないので、それは難しいそれらを反復することができ、識別子、なってしまいますルーツ。 は、私は2つのVCSのルーツがあります:理想的
%build.vcs.number.Proj_App_TcTestFW%
%build.vcs.number.Proj_App_TcTestApp%
を、私はそうのようにそれらを反復処理したいと思います。ここでは
は、ケースを使用する例を示します
$vcsArray = @()
foreach ($vcsRoot in vcsRoots)
{
[email protected]{
"VCSName"= $vcsRoot;
"VCSNumber"= "%build.vcs.number." + $vcsRoot%
}
$vcsArray += $vcsObject
}
しかし、それは私と思われます私のスクリプト内の名前をハードコードする必要があるので、私は現在迷っています。
TeamCityは、それらを反復できるような方法でVCSルートを公開しますか? [OK]を
おかげ アレックス