2016-02-27 12 views
13

Ich verschiebe eine bestimmte Gruppe von Builds aus einem vorhandenen Visual Studio Team Service-Projekt in eine neue. Leider kann ich keine Möglichkeit finden, die Builddefinitionen von einem Projekt in ein anderes zu migrieren. Es scheint keine Import/Export-Funktion oder einen anderen Mechanismus zu geben.Wie kann ich ein Visual Studio Team Service Build in ein neues Projekt kopieren

Gibt es eine Möglichkeit, diese zu verschieben, ohne die Builds im neuen Projekt manuell neu zu erstellen?

Antwort

3

Es gibt keine Möglichkeit, eine vnext-Builddefinitionsvorlage zwischen Teamprojekten zu kopieren oder zu synchronisieren. Die Builddefinitionsvorlage gilt nur für das aktuelle Teamprojekt. Daher müssen Sie eine Builddefinitionsvorlage für jedes Teamprojekt erstellen.

Und auch gab es eine Feature-Anfrage in Benutzer Stimme gewesen, können Sie abstimmen und überwachen es

VSO vNext bauen: Aktienvorlagen zwischen Projekten bauen https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

Es kann jedoch mithilfe von API erreicht werden, hier ist ein simple tool, den Sie verwenden können. (Need in der gleichen Team-Projekt-Sammlung)

1

Sie können dazu die REST-APIs verwenden. Es ist ein Beispiel gezeigt here.

Es zeigt, wie die JSON-Antwort von einer Builddefinition erhalten und wieder die gleiche Referenz mit einer neuen im Projekt

Sie wünschen machen
2

Sie so etwas wie das folgende tun könnte:

$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0" 
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials 

$obj.project = $null 

#TODO: Update all repository/source control info, too. 

$json = ConvertTo-Json $obj -Depth 3 

$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0" 
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials 

Das Wichtigste ist, die vorhandene Definition aus dem Quellprojekt (projec1) zu holen, die Projektverknüpfungen zu löschen, die neuen Repository-Informationen nach Bedarf festzulegen, das neue def als Post (create) an das Zielprojekt (project2) zu senden.

+0

Beispiel von Build Json Nutzlast zu ändern: http://www.ericksegaar.com/2015/10/16/using-json-via-rest-to-create-build-definitions-in-vso/ – JoeBrockhaus

9

Dies ist nun innerhalb der VSTS Definitionen bauen Web-UI:

See screenshot here.

Verwandte Themen