如何在Azure Devops(VSTS)中导入发布定义?
我正在尝试将版本定义从一个Azure Devops(VSTS)项目复制到另一个项目。在源项目中,我能够将发布定义导出为json文件 但我无法找到一种方法将其导入到目标项目中。我只有创建新定义的选项 转到Build and Release,然后再转到Release,在那里您将找到一个选项。 单击+按钮,可以选择导入发布定义 如果您需要进一步帮助,请告诉我。将此作为已接受答案的补充。 公认的答案确实有效,但我应该指出,我最初的问题并没有通过它得到精确的解决如何在Azure Devops(VSTS)中导入发布定义?,azure,tfs,continuous-integration,azure-devops,azure-pipelines-release-pipeline,Azure,Tfs,Continuous Integration,Azure Devops,Azure Pipelines Release Pipeline,我正在尝试将版本定义从一个Azure Devops(VSTS)项目复制到另一个项目。在源项目中,我能够将发布定义导出为json文件 但我无法找到一种方法将其导入到目标项目中。我只有创建新定义的选项 转到Build and Release,然后再转到Release,在那里您将找到一个选项。 单击+按钮,可以选择导入发布定义 如果您需要进一步帮助,请告诉我。将此作为已接受答案的补充。 公认的答案确实有效,但我应该指出,我最初的问题并没有通过它得到精确的解决 基本上,如果您没有任何现有的发布定义,
基本上,如果您没有任何现有的发布定义,那么似乎没有导入定义的方法。我所做的是创建一个“虚拟”定义,然后按照公认的答案进行操作。创建至少一个定义会将您带到该屏幕,否则您只会看到我在问题中显示的屏幕。由于VSTS被重命名/更新为Azure DevOps,因此在UI中会有一些更改以查找上面的选项 进口 出口 关于增编
所有的构建/发布定义都附带了一个称为Pipeline的术语。因此,不需要创建虚拟发布定义来导入新的发布定义。您可以导入一个新的发布定义,而无需任何伪版本。阅读上面的注释,您在从其他VSTS/Azure DevOps Organization导入发布定义时遇到问题的原因是,您导出的发布定义包含对该版本中不存在的对象的GUID引用要将发布定义导入的组织或项目。因此,您必须卷起袖子,做一些工作,以获得一个成功的、平滑的、完全集成的发布定义,并将其用作模板。我们将使用在此处找到的REST API: 以下是我的技术答案,以及我复制发布定义并创建了一个要多次使用的模板所做的工作:
$homeDir=“$(分割路径-父$MyInvocation.MyCommand.Definition)”
$VSTS_RestApiHost=”https://vsrm.dev.azure.com/yourpath/_apis"
$VSTS\u PAT=“您的\u PAT\u令牌\u在此”
$headers=@{Authorization=“Basic”+[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(“:$($VSTS_PAT)”))}
$relDefInfo=获取内容“$homeDir\ReleasePipelineTemplate Formatted.json”
编写主机“创建发布管道…”
$createReleaseDef=“$($VSTS_RestApiHost)/release/definitions?api版本=4.1-preview.3”
$response=Invoke RestMethod-Method Post-Uri$createReleaseDef-Body$relDefInfo-ContentType'application/json'-Headers$Headers
写入主机“创建发布管道完成。管道id:$($response.id)”
如果($response.id-gt 0){
写入主机“发布定义:成功”
}
写入主机$response.id
,导出后生成json文件并保存在本地文件夹中。
然后转到release或plus(+)按钮,单击它,您可以看到inport选项,单击它并选择该json文件。
就这样….如果看不到导入选项,可以尝试创建第一个空管道 一旦有了它,它将启用导入选项
效果很好,谢谢!它给了我一个警告说,
发布定义中的以下属性未导入:代理队列、部署组、部署组标记、批准、变量组和秘密变量的值。
有什么方法可以解决这个问题吗?我不知道有什么方法可以超越开发组和代理队列..导入时,它确实为您提供了从下拉列表中选择的选项。如果您在一个没有版本定义的项目中,您将看不到这个+按钮,您必须创建一个新的空白版本,保存它,然后当您返回时,您将看到该按钮。@raterus thank's。。。此信息应添加到回答中请注意,此回答所指的是使用GUI导入下载的json文件,该文件将导入发布定义