2016-07-05 27 views
3

Ich bin in einer CI-Umgebung mit VSTS und ich möchte den Commit-Kommentar erhalten, um ihn in eine Textdatei zu setzen.Wie Git-Commit-ID und Nachricht in VSTS/TFS-Build abrufen?

Hier sind meine Build-Schritt: enter image description here

Die Idee ist, die GIT Commit-Kommentar in eine Textdatei in dem Artefakt-Ordner gespeichert zu kopieren. Dann setze ich mit dem HockeyApp SDK meinen Commit-Kommentar in die Release-Note.

Ich kann die Datei problemlos mit einer Befehlszeilenoperation kopieren, aber ich weiß nicht, wie der Kommentar abgerufen wird.

Antwort

3

Die Umgebungsvariable $(Build.SOURCEVERSIONMESSAGE) wird während des Builds festgelegt. Sie können darauf zugreifen, indem Sie $(build.SOURCEVERSIONMESSAGE) direkt in Ihren Aufgabeneingaben verwenden.

Wenn Sie in einem Powershell-Skript oder Inline-Powershell-Skript darauf zugreifen möchten. Sie können darauf zugreifen über die Umgebungsvariable, d. H. Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE

Das folgende Skript erstellt eine neue Datei commit.txt im Ordner binaries mit Commit-Nachricht darin. Führen Sie das Skript mit der Powershell-Aufgabe mit Inline-Typ aus.

$message = (Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE) 

$path = (Get-Item Env:\BUILD_BINARIESDIRECTORY).Value + '\commit.txt' 

echo $message > $path 

enter image description here

+0

Nach Ihrem Beispiel habe ich es mit einer Befehlszeile versucht. Werkzeug = echo. Argumente = '" $ (Build.SOURCEVERSIONMESSAGE) ">" $ (build.binariesdirectory) \ $ (BuildConfiguration) \ drop \ commitComment.txt "'. Ich habe den folgenden Fehler: '[Warnung] Dateiname zeigt nicht den vollständigen Pfad zu einer ausführbaren Datei an. –

+0

Ich glaube nicht, dass es so funktionieren würde. BuildConfiguration-Variable ist nicht verfügbar. Lassen Sie mich ein Beispiel formulieren, das funktioniert. –

+0

@ XavierW. Hinzugefügt das Beispiel in der Antwort, die mit VSTS funktioniert. Lass es mich wissen, ob es funktioniert oder nicht. –

0

Sie können einen Power-Shell-Skript-Task in der Build-Definition erstellen, um den Commit-Kommentar abzurufen und über Rest API in eine Textdatei zu schreiben.

+0

ich in der Power-Shell bin nicht sehr gut. Haben Sie ein Beispiel oder einen Artikel über Power-Shell und VSTS, die zusammenarbeiten? –

2

folgenden Befehl wird die aktuelle ID begehen anzuzeigen und Commit-Nachricht:

git log --pretty=oneline | head -1 
+0

Das ist eigentlich die einfachste Antwort. In meinem Fall fehlte Build.SOURCEVERSIONMESSAGE, daher habe ich einfach "git log head -1" verwendet. – rolls

+0

Dies hängt vom Betriebssystem ab, Sie können stattdessen Folgendes verwenden: 'git log -1 --pretty = oneline' – Sawtaytoes