我正在将一组特定的构建从现有的Visual Studio Team Service项目移动到新项目。不幸的是,我找不到将构建定义从一个项目迁移到另一个项目的方法。似乎没有导入/导出功能或其他机制。
有没有办法移动这些而无需手动重新创建新项目中的构建?
现在可以从VSTS Build Definitions Web UI中获取:
.
您可以立即使用Visual Studio Marketplace中的Export/Import Build Definition扩展。
您可以执行以下操作:
$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
要点是:从源项目(projec1)获取现有定义,清除项目关系,根据需要设置新的存储库信息,并将新定义作为POST(CREATE)发送到目标项目(project2)。
无法在团队项目之间复制或同步vnext构建定义模板。构建定义模板仅适用于当前团队项目。因此,您需要为每个团队项目创建构建定义模板。
此外,UserVoice上还有一个功能请求,您可以对其进行投票和监控
VSO构建vnext:在项目https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro之间共享构建模板
但是,它可以使用API实现。这是你可以使用的a simple tool。 (需要在同一个团队项目集合中。)
您可以使用REST API执行此操作。有an example shown here。
它显示了如何获取构建定义的JSON响应,并再次使用相同的引用在您想要的项目中创建一个新的响应。
在