19

我正在将一组特定的构建从现有的 Visual Studio Team Service 项目转移到一个新的项目中。不幸的是,我找不到将构建定义从一个项目迁移到另一个项目的方法。似乎没有导入/导出功能或其他机制。

有没有办法在不手动重新创建新项目中的构建的情况下移动这些?

4

6 回答 6

17

现在可以在 VSTS 构建定义 Web UI 中使用它:

VSTS 导出和克隆.

于 2017-07-14T08:56:14.983 回答
13

您现在可以使用 Visual Studio Marketplace 中的导出/导入构建定义扩展。

于 2016-09-02T09:09:05.487 回答
4

您可以执行以下操作:

$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)。

于 2016-07-20T19:04:45.170 回答
3

无法在团队项目之间复制或同步 vnext 构建定义模板。构建定义模板仅适用于当前团队项目。因此,您需要为每个团队项目创建一个构建定义模板。

UserVoice上也有一个功能请求,您可以投票并监控它

VSO build vnext:在项目之间共享构建模板 https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

但是,它可以使用 API 来实现。这是一个您可以使用的简单工具。(需要在同一个团队项目集合中。)

于 2016-02-29T03:34:09.203 回答
2

您可以使用 REST API 来执行此操作。这里有一个例子

它展示了如何获取构建定义的 JSON 响应,并再次使用相同的引用在您想要的项目中创建一个新的。

于 2016-04-22T13:21:50.627 回答
0

  1. 在源项目导出(通过...)每个构建定义

  2. 在目标项目上,在构建定义的文件夹视图中,新建->导入一个并调整:代理池存储库路径(稍后查看,同时保存导入)

  3. 导出成功导入的构建定义

  4. 编辑剩余的提取构建定义并替换(使用第一个成功导入的构建定义中的值)代理池、存储库和路径的值
  5. 导入剩余的构建 查看名称(删除 -import 后缀) 查看代理池 在保存导入的构建时查看目标项目文件夹视图中的路径
于 2019-02-28T12:38:09.630 回答