如何将 VSTS 构建和发布定义从一个实例移动到另一个实例?

Posted

技术标签:

【中文标题】如何将 VSTS 构建和发布定义从一个实例移动到另一个实例?【英文标题】:How to move VSTS build and release definitions from one instance to another instance? 【发布时间】:2018-05-10 12:56:10 【问题描述】:

我们有许多 VSTS 实例,我们正在尝试将多个 VSTS 实例合并为 1。为此,我们需要将所有构建和发布定义移动到一个特定实例。请帮我解决这个问题。我想要程序如何继续这个。我从谷歌尝试但没有得到任何解决方案。请帮帮我。我是 VSTS 的新手。

【问题讨论】:

如果您要移动的构建/发布定义较少,您还可以使用网页中的功能导出/导入构建和发布定义。 【参考方案1】:

最简单的方法是使用REST APIs。

首先,确保两个实例都安装了相同的构建/发布任务扩展。

那么,这个过程将是:

检索构建定义 更新构建定义以在目标实例中使用适当的代理队列 导入构建定义并记下构建定义 ID 对所有构建定义重复 检索发布定义 更新版本中的每个环境以在目标实例中使用适当的代理队列 更新工件以指向适当的、新导入的构建定义(使用上一步中的 ID) 导入发布定义 对所有版本定义重复

您可能还需要更新审批者或类似的东西。基本上,这将是一个反复试验的过程。

【讨论】:

,我不明白你在这里告诉的程序。我刚刚浏览了 RestAPI 页面,我需要捕获或遵循什么样的数据?请向我解释一下,因为我是 REST API 的新手还有..【参考方案2】:

您可以导出构建并导出版本。

导出构建定义

导出版本定义

在您的目标团队项目中,您可以导入导出的文件。

导入构建定义

在构建中心:

导入发布定义

请注意,导入后,您需要将您的版本指向正确的工件,但这只是一小步,只需更改工件以使用新工件。

【讨论】:

如果我导入另一个 VSTS 实例,导出的 Json 文件中的旧 VSTS URL 仍然存在,并且我们还需要删除一些其他设置。如果我们不删除这些东西,新的 VSTS 实例不是允许导入它。抛出像json文件这样的错误无效。请再次导出Json文件并导入它。所以这里的问题是任何想法如何轻松地将构建和发布定义从一个VSTS实例导入和导出到另一个实例而不修改Json 文件。 如果不进行一些修改,按照我解释的方式进行,这是不可能的。但是考虑一下你会这样做多少次。如果它是一项重复性任务,那么自动化它会更好,但你可以花更多的精力来构建你的自动化。如果这是一次性工作,那么只需更改 json 就可以减少工作量。

以上是关于如何将 VSTS 构建和发布定义从一个实例移动到另一个实例?的主要内容,如果未能解决你的问题,请参考以下文章

将构建定义从 TFS 迁移到 VSTS

在VSTS上仅运行一个构建实例

从 VSTS 发布管理将网站构建部署到 Azure

如何在 VSTS 仪表板小部件中使用 REST API 从 TFS 获取构建定义?

如何使用服务挂钩从VSTS触发内部部署jenkins作业

将 1 个 VSTS 实例链接到多个 Azure 订阅