2016-04-22 9 views
0

Ich habe eine TFS 2013u4 Git-Build-Definition, die ein Repository definiert, Repo Standard und CI überwacht Repos in seinen Source-Einstellungen. Mit Methoden, die an anderer Stelle beschrieben sind, kann ich den Standardzweignamen aus der Builddefinition in meiner benutzerdefinierten Build-XAML abrufen, aber ich muss einen Weg finden, um den Namen der Verzweigung zu ermitteln, die einen CI-Build ausgelöst hat.Get TFS Triggered Build Git Zweig

Zum Beispiel:

Meine Build-Definitionslisten BranchA als Standard und listet BranchA, BranchB, BranchC und BranchD als überwachte Zweige für CI Triggered baut.

Sagen Sie, jemand schreibt eine Änderung an BranchD; Durch dieses Commit wird diese Builddefinition ausgelöst. Wie kann ich in meinem benutzerdefinierten Build-XAML feststellen, dass es ein Commit für BranchD war, das diesen Build ausgelöst hat?

Antwort

0

Es ist eine Eigenschaft innerhalb eines IBuildDetail Objekt SourceGetVersion genannt. Wenn eine Builddefinition mithilfe des in der Builddefinition definierten Standardzweigs manuell ausgeführt oder ausgelöst wird, gibt diese Eigenschaft einfach "T" zurück. Wenn die Builddefinition jedoch durch einen Commit für einen überwachten Zweig ausgelöst wurde, wird diese Eigenschaft auf Zweigname (plus ein paar andere Kleinigkeiten).

Ich parse einfach den Wert dieser Eigenschaft und ich kann genau bestimmen, welcher Zweig die Build-Definition ausgelöst hat.

0

Nein, dies kann nicht durch Git-Build-Definition für jetzt erreicht werden. Es gibt keine Möglichkeit, den CI-Auslöser auf einen bestimmten Ordner innerhalb des Repos zu beschränken.

Und es gab eine vorgestellte Anfrage in UserVoice. Sie können dafür stimmen.

zulassen GIT CI in einem bestimmten Unterverzeichnis nur Änderungen überwachen Baut eines Repo https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/5279254-allow-git-ci-builds-to-monitor-changes-only-in-a-s

+0

Das ist nicht ganz das, wonach ich gefragt habe. Die Anforderung in UserVoice besteht darin, den genauen Unterordner in einem Zweig zu identifizieren, in dem eine Änderung vorgenommen wurde. Alles, was ich wissen muss, ist der Zweigname selbst. Ich habe tatsächlich eine Lösung gefunden, siehe meine Antwort. –