Ich versuche, das Build-Nummer-Format in Teamcity mit Powershell (ein bisschen wie in diesem Octopus Deploy blog post) zu setzen.Wie lege ich die Build-Nummer in Teamcity fest?
Ich weiß jedoch nicht, ob sich die Art und Weise, wie Teamcity die Servicemeldungen bearbeitet, seitdem geändert hat oder ob ich das falsch mache, weil es nicht funktioniert.
Ich habe folgende Powershell-Skript als ersten Schritt in meinem Build-config:
$buildCounter = "%build.counter%"
$buildConfig = "%system.buildconfig%"
$version = "%system.majorMinorVersion%"
$branch = "%vcsroot.branch%"
if ($branch.Contains("/"))
{
$branch = $branch.substring($branch.lastIndexOf("/")).trim("/")
}
$buildNumber = "${version}.${buildCounter}-${branch}"
Write-Host "##teamcity[buildNumber '$buildNumber']"
(Ich habe auch versucht $branch = "%teamcity.build.branch%"
auf Linie 5)
Also, wenn ich diese versuchen, die if-Anweisung läuft nicht, denn obwohl es im Beispiel von Octopus Deploy so aussieht, als würde $ branch auf den tatsächlichen Wert von %vcsroot.branch%
gesetzt werden, ist dies nicht der Fall und das Ergebnis, dass es in Teamcity geschrieben wird, ist wörtlich ##teamcity[buildNumber '$buildNumber']
. Allerdings scheint dies zu funktionieren, aber die Build-Nummer kann /
darin nicht enthalten, so dass mein Build fehlschlägt, weil die Verzweigung auf refs/head/master
statt master
festgelegt ist.
Wohin gehe ich falsch?
Ich benutze PowerShell wie if ("% teamcity.build.branch%". StartsWith ("...")) und Sie haben auch die richtige Syntax zum Schreiben der Build-Nummer. Wenn Sie nach der if-Anweisung den $ -Zweig schreiben, was wird ausgegeben? –