web-dev-qa-db-fra.com

Comment copier une version de Visual Studio Team Service dans un nouveau projet?

Je déplace un ensemble particulier de générations d'un projet Visual Studio Team Service existant vers un nouveau. Malheureusement, je ne trouve pas de moyen de migrer les définitions de construction d'un projet à un autre. Il ne semble pas y avoir de fonction d'importation/exportation ou autre mécanisme.

Existe-t-il un moyen de les déplacer sans recréer manuellement les générations dans le nouveau projet?

17
jlo

Ceci est maintenant disponible dans l'interface utilisateur Web VSTS Build Définitions:

VSTS Export and clone.

14
marv

Vous pouvez utiliser maintenant une extension Export/Import Build Definition dans Visual Studio Marketplace.

13
Eddie Chen - MSFT

Il n’est pas possible de copier ou de synchroniser un modèle de définition de construction vnext entre des projets d’équipe. Le modèle de définition de construction est uniquement destiné au projet d'équipe actuel. Vous devez donc créer un modèle de définition de construction pour chaque projet d'équipe.

Et aussi il y a eu une demande de fonctionnalité sur UserVoice , vous pouvez voter et surveiller

VSO build vnext: partage de modèles de construction entre projets https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext- share-build-templates-between-pro

Cependant, cela peut être réalisé à l'aide de l'API. Voici un outil simple vous pouvez utiliser. (Besoin de faire partie de la même collection de projet d'équipe.)

3
PatrickLu-MSFT

Vous pouvez faire quelque chose comme ceci:

$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

En résumé: récupérez la définition existante dans le projet source (projec1), supprimez les liens du projet, définissez les nouvelles informations de référentiel selon vos besoins et envoyez la nouvelle définition sous la forme d'un POST (CREATE) au projet cible. (projet2).

3
Codingrunr

Vous pouvez utiliser les API REST pour effectuer cette opération. Il y a un exemple montré ici .

Il montre comment obtenir la réponse JSON d'une définition de construction et utiliser à nouveau la même référence pour en créer une nouvelle dans le projet souhaité.

1
Dhruv Patel

Dans

  1. Sur l'exportation du projet source (via ...) chaque définition de construction

  2. Dans le projet Destination, dans la vue des dossiers pour les définitions de construction, cliquez sur Nouveau-> Importer et ajustez: Pool d'agents Référentiel Chemin (à vérifier ultérieurement, lors de l'enregistrement de l'importation) )

  3. Exporter la définition de construction importée avec succès

  4. Modifiez les définitions de construction extraites restantes et remplacez (par les valeurs de la première définition de construction importée) les valeurs de pool d'agents, de référentiel et de chemin d'accès.
  5. Importez les versions restantes Vérifiez le nom (supprimez le suffixe -import) Vérifiez le pool d'agents Vérifiez le chemin dans la vue des dossiers du projet de destination lors de l'enregistrement de la version importée.
0
SCDomingos