Ich benutze Git und Powershell Konfiguration Build-Schritte in TeamCity. Ich muss Git-Tag für die benutzerdefinierte Festschreibung extrahieren, wenn Sie benutzerdefinierte Build in TeamCity erstellen.Konvertieren von ConfigurationParameter in String in TeamCity
Also habe ich ConfigurationParameter% CustomRevision% (vom Typ Text) in TeamCity eingeführt und vor dem Start des benutzerdefinierten Builds fülle ich diesen Parameter manuell aus, um einen Hash des Commits bereitzustellen.
als Powershell-Skript, komponiere ich einen String mit dem git Befehl auszuführen:
$customRevision = "%CustomRevision%"
$cmdGetExactTag = -join "git describe --exact-match --abbrev=0 --tags", $customRevision, "--always"
$tag = Invoke-Expression $cmdGetExactTag
Aber Powershell kann "% CustomRevision%" bespannen gibt mir die Ausnahme nicht konvertieren:
Invoke-Expression : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Command'. Specified method is not supported.
At C:\BuildAgent\temp\buildTmp\powershell7046746237377169989.ps1:18 char:25
+ $tag = Invoke-Expression <<<< $cmdGetExactTag
+ CategoryInfo : InvalidArgument: (:) [Invoke-Expression], Parame
terBindingException
[12:48:14][Step 3/4] + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Comma
[12:48:14][Step 3/4] nds.InvokeExpressionCommand
Wie sollte ich "% CustomRevision%" richtig in einen String für PowerShell konvertieren? Vielen Dank im Voraus,
Verschieben Sie den '-join'-Operator rechts neben den Eingabeargumenten:' "git describe --exact-match --abbrev = 0 --tips", $ customRevision, "--always" -join "" ' –
Wenn ich das tue, dann habe ich: Invoke-Expression: Fehlender Ausdruck nach dem unären Operator '-'. Bei C: \ BuildAgent \ temp \ buildTmp \ powershell5077669800046396338.ps1: 18 Zeichen: 25 + $ tag = Invoke-Ausdruck <<<< $ cmdGetExactTag + CategoryInfo: ParserError: (-: String) [Invoke-Ausdruck] , Pa rseException + FullyQualifiedErrorId: MissingExpressionAfterOperator, Microsoft.PowerSh ell.Commands.InvokeExpressionCommand – Alex