2016-11-24 7 views
0

Wir verwenden ein nettes $ (Datum: yyyy.MM.dd) $ (rev: .r) Build-Nummer-Format in unseren täglichen agilen Sprints. Die Freigabe muss jedoch mit einem einfacheren 1.0.0.rev-Schema nummeriert werden.TFS 2015 Build-Definition - Override Build-Nummer mit Variablen

Idealerweise möchte ich die Build-Nummer als eine Variable angeben, die automatisch im Dialog "Queue-Build" erweitert würde, wo es möglich wäre, überschrieben zu werden. Wie kann es gemacht werden?

Ich habe versucht, die $ (Stand: YYYY.MM.DD) Bewegen $ (rev: .r) -Format auf eine Variable, und diese Variable in der Registerkarte Allgemein verwenden und erhielt Fehler 400.

+0

Warum möchten Sie die Build-Nummer als Variable angeben? Möchten Sie nur $ (Datum: yyyy.MM.dd) $ (rev: .r) behalten? Oder möchten Sie die Build-Nummer in Ihren Build-Schritten verwenden? –

+0

@ Patrick-MSFT Ich möchte in der Lage sein, die Versionsnummer zu überschreiben (und das normale Format mit einem "Release" -Format zu ändern), wenn ich einen neuen Build einreiße - genauso wie ich jede andere Build-Variable ändern kann. – liorda

+1

Sie können den Wert in der Warteschlangenerstellung der Versionsnummer nicht direkt ändern. Wenn Sie die Hauptversion oder die Nebenversion ändern möchten. Sie müssen es manuell in der Definition ändern. Einzelheiten, wie Sie dieses Blog verweisen können http://inclesoftware.com/2015/06/vnext-build-awesomeness-managing-version-numbers/ in meiner Antwort. –

Antwort

2

Sie könnten direkt verwenden Environment variables wie Build.BuildNumber/BUILD_BUILDNUMBER

Verwenden Sie dies nur gleich dem Namen des fertigen Build. Sie können das Build-Nummer-Format angeben, das diesen Wert auf der General tab generiert.

Wenn Sie nur benutzerdefinierte Build-Nummern wie 1.0.0.rev Schema in TFS Build vNext generieren möchten. Sie können einen Blick auf unten Blogs nehmen:

+1

Der zweite Link bietet eine Möglichkeit, um Variablen aus einem Build-Schritt zu überschreiben. Vielen Dank! – liorda

+0

zweiten Link ist tot ... :( – Leon

+1

@Leon Habe es aktualisiert. –

2

Das ist sehr einfach.

1) Erstellen Sie einfach einen Powershell-Skript wie diese

$FinalVersion=Some-Function-To-Calculate-Version 
 
$BuildDefName = $Env:BUILD_DEFINITIONNAME 
 
Write-Host "##vso[build.updatebuildnumber]$($BuildDefName)-$($FinalVersion)"

2) In Ihrer vNext Definition bauen, zu etwas "Build Zahlenformat" gesetzt es eben. Es spielt keine Rolle, da die Build-Nummer überschrieben wird.

3) Fügen Sie in denselben vNext-Builddefinitionsschritten den ersten Schritt als Powershell-Schritt hinzu und legen Sie Ihr Skript aus Schritt 1 fest, das ausgeführt werden soll. Sie können später anpassen, wenn Sie Variablen übergeben möchten, um Ihre Build-Nummer zu berechnen.

4) Halten Sie Ihren Build an und sehen Sie sich die Ergebnisse an.

+0

Vielen Dank. Das funktioniert für mich sehr gut. –