2016-02-27 29 views
13

Sto spostando un particolare set di build da un progetto di servizio di team di Visual Studio esistente a uno nuovo. Sfortunatamente, non riesco a trovare un modo per migrare le definizioni di costruzione da un progetto a un altro. Non sembra esserci una funzione di importazione/esportazione o un altro meccanismo.Come copiare un servizio Team di Visual Studio su un nuovo progetto

C'è un modo per spostarli senza ricreare manualmente i build nel nuovo progetto?

risposta

3

Non c'è modo di copiare o sincronizzare un modello di definizione build vnext tra i progetti del team. Il modello di definizione build è solo per il progetto del team attuale. Quindi è necessario creare un modello di definizione build per ogni progetto del team.

E inoltre ci sono stati una richiesta di funzionalità in utente vocale, è possibile votare e monitorarlo

VSO costruire vNext: quota di costruire modelli tra i progetti https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

Tuttavia, può essere ottenuto utilizzando l'API, qui è possibile utilizzare uno simple tool (necessario nella stessa raccolta di progetti team)

1

È possibile utilizzare le API REST per eseguire questa operazione. C'è un esempio mostrato here.

Essa mostra come ottenere la risposta JSON di una definizione di compilazione e di nuovo con lo stesso riferimento per fare uno nuovo nel progetto che desiderate

2

Si potrebbe fare qualcosa di simile al seguente:

$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 

L'essenza è, ottiene la definizione esistente dal progetto sorgente (projec1), cancella i vincoli del progetto, imposta le nuove informazioni del repository secondo necessità, invia la nuova def come post (crea) al progetto di destinazione (progetto2).

+0

esempio di build payload json da modificare: http://www.ericksegaar.com/2015/10/16/using-json-via-rest-to-create-build-definitions-in-vso/ – JoeBrockhaus

9

Questo è ora disponibile all'interno del VSTS Costruire le definizioni web UI:

See screenshot here.

Problemi correlati