2017-11-21 13 views
0

Ich habe eine Struktur Projekt wie folgt:Wie voneinander abhängig Lösungen in VSTS bauen

Repos \ WebAPI

Repos \ WebPortal

Repos \ BackendService

Repos \ Extensions

Jeder von ihnen ist in einem eigenen Repository, hat seine eigene Lösung, aber alle hängen vom Extensions-Projekt ab.

In der Vergangenheit habe ich CCNET verwendet und war in der Lage, das Extensions-Projekt zu erstellen, die Artefakte aus dem Build zu speichern und dann einen Build auf allen seinen Abhängigkeiten mithilfe der Artefakte aus dem ersten Build auszulösen.

Meine Frage ist: Wie kann ich das in VSTS tun. Alternativ, wenn die Antwort ist, können Sie nicht, wie soll ich meine Projekte strukturieren, um DRY, SRP und automatisiert zu halten? Ich möchte nicht alle Projekte in einer einzigen Lösung hinzufügen (es gibt tatsächlich ein paar mehr beteiligt und mehrere Ebenen von Abhängigkeiten, aber zur Veranschaulichung des Problems habe ich es vereinfacht)

Von dem, was ich sagen kann, kann ich Ich verwende keine Build-Artefakte von anderen Builds, ich kann nicht mehrere Quell-Repos zu einem Build in VSTS hinzufügen, noch kann ich eine Möglichkeit sehen, Builds nach Abschluss eines anderen Builds auszulösen.

Was mir das Gefühl gibt, etwas grundsätzlich falsch zu machen.

+0

Verwenden Sie Git oder TFVC für die Quellcodeverwaltung? –

+0

Wir verwenden Git für die Quellcodeverwaltung. – Corey

+0

Wie wäre es mit git Submodul? –

Antwort

1

Es gibt viele Möglichkeiten, es zu tun:

• Erstellen Sie das Paket für Extensions-Projekt und laden zu einem Futtermittel, wie VSTS feed: Package Management in VSTS and TFS, dann Pakete wiederherstellen während des Build-

• Die ähnliche Art und Weise Wie du gesagt hast: Add Download Build Artifacts Aufgabe, um eine Definition zu erstellen, um das Artefakt von Extensions Build herunterzuladen. Sie können auch Builds REST API über PowerShell aufrufen, um Buildartefakte zu erhalten.

• Wenn Sie TFVC Repository verwenden, können Sie die Extensions-Projekt durch Angabe von ergänzenden Workspace-Zuordnungen in Get Quellen Abschnitt von Builddefinition erhalten (Geben Sie es direkt klicken, ... wählen)

• Laden Sie ein zusätzliches Repository mithilfe von Download Artifacts-External TFS Git/TFVC Task

herunter. • Verwenden Sie git submodule, wenn es sich um ein Git-Repository handelt.

In Bezug auf Trigger Build von einem anderen Build, können Sie Trigger Build task verwenden.

+0

Vielen Dank für die Antwort, ich wollte nicht die git submodule Ansatz verwenden, wie ich denke, dies zu verwalten ist mehr als das, was wir suchen. Ich versuche, die Aufgabe "Download Build Artifacts (Preview)" zu verwenden, gibt es eine Möglichkeit, den neuesten Build mit dieser Aufgabe anzugeben? Ich habe "Specific Build" ausgewählt, die entsprechende Projekt- und Build-Definition, aber das Dropdown-Menü "Erstellen" ermöglicht nur das Auswählen eines bestimmten Builds, wenn ich tatsächlich die Artefakte des letzten Builds aus dem ausgewählten Build verwenden möchte Projekt- und Build-Definition – Corey

+0

Sie können den letzten Build in der Aufgabe Download Build Artifacts nicht angeben. Sie können Builds REST API aufrufen, um Build-Artefakte zu erhalten. –

Verwandte Themen