1

我使用 AzureDevOps 构建和发布管道,直到内部测试阶段和所有生产阶段都使用 Octopus 部署。Azure 中的第一阶段被配置为在 Octopus 中创建一个版本,并成功地在工作项中显示部署到内部测试。见下图

在此处输入图像描述

现在,我希望将我们在 octopus 中推广到后期生产阶段的所有部署也显示在此处,或者显示一个指向 octopus url 的链接,该链接将您带到相关阶段。

请指导这可能吗?

4

1 回答 1

1

Octopus 部署 url 无法显示在 azure devops 工作项的部署、开发和相关工作字段中。对于这些字段,仅支持来自 azure devops 的工作项、azure 构建、PR 等的链接。

我对 Octopus 了解不多,但是如果有一个工具或 octopus api 可以从与发布中包含的包关联的构建信息中获取 azure devops workitem id,那么您可以使用azure devops rest api添加超链接到 azure devops 工作项中的章鱼 url。您可以在链接选项卡中找到超链接,如下图所示。

在此处输入图像描述

第一步是将您的 azure devops 与 Octopus 集成。请检查此处的步骤。

然后配置您的 azure devops 管道以将包含工作项的构建信息推送到 Octopus。请查看章鱼文档Azure DevOps 工作项跟踪集成

然后,添加一个脚本 step s 以在 Octopus 中运行以下脚本,以使用指向 octopus url 的超链接更新 azure 工作项。(在运行下面的脚本之前,您需要获取章鱼中工作项的 ID)

$url= "https://dev.azure.com/{azure devops organization}/{azure devops organization project}/_apis/wit/workitems/{workitem id}?api-version=5.1"

$body='[{
    "op": "add",
    "path": "/relations/-",
    "value": {
      "rel": "Hyperlink",
      "url": "octopus url"
    }
  }]'

$wicrpat ="Personal access token from azure devops"

$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($wicrpat)"))

Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -ContentType "application/json-patch+json" -Method patch -Body $body

请查看此处的步骤以获取个人访问令牌。

在此处查看有关工作项更新 api 的更多信息。

您还可以在 Dashboards 中添加一个小部件,以在您的 azure devops 项目中显示 Octopus 部署。(转到Overview下的Dashboards,单击编辑和搜索并添加 octopus deploy 小部件)

以上希望有帮助!

于 2020-03-05T09:32:06.077 回答