在构建失败时在不同项目中创建错误

时间:2018-03-26 22:37:31

标签: azure-devops azure-pipelines

我们已经设置了一个构建定义,它会创建一个bug并将其分配给" requestor"加入构建失败。见下文:enter image description here

默认情况下,错误是在同一个项目中创建的。如何更改此项以在其他项目中创建错误?原因是,我们的工作项目跟踪与我们的Git回购项目处于不同的项目中(由于重新洗牌而未进行重组)。请注意,这两个项目都在同一个帐户下。

查看工具提示,它提供了一些示例字段,是否有相应的字段用于"项目" ? (System.Project?!)

2 个答案:

答案 0 :(得分:1)

VSTS构建中的“失败时创建工作项”选项只能在同一项目中创建工作项。

如果构建失败,则可以通过添加PowerShell任务来实现创建Bug的解决方法。详细步骤如下:

1。在构建定义的最后添加PowerShell

在PowerShell脚本中,您可以通过REST API为其他项目创建Bug。下面是一个示例脚本:

$witType="Bug"
$witTitle="Build $(build.buildNumber) failed"


$u="https://account.visualstudio.com/DefaultCollection/project/_apis/wit/workitems/`$$($witType)?api-version=1.0"
$body="[
          {
            `"op`": `"add`",
            `"path`": `"/fields/System.Title`",
            `"value`": `"$($witTitle)`"
          }
       ]"
$user = "user"
$token = "PAT"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$result=Invoke-RestMethod -Method PATCH -Uri $u -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json-patch+json" -Body $body

2。指定“运行此任务”选项为“即使上一个任务失败,除非构建已取消

从第二个任务到结束任务(PowerShell任务),将“运行此任务”选项更改为即使上一个任务失败,除非构建已取消

enter image description here

因此,当构建失败时,将根据您在PowerShell脚本中指定的不同项目创建一个Bug。

答案 1 :(得分:0)

你无法开箱即用,但......

您可以使用API​​执行此操作,如下所示:

1 - 向构建过程添加任务以调用rest API并调用api来创建工作项。见https://www.visualstudio.com/en-us/docs/integrate/api/wit/work-items#create-a-work-item

2 - 更改代理阶段以允许访问令牌。你的任务需要这个。

3 - 在控制选项中更改您的任务并更改"运行此任务"到"自定义条件"并填写

字段
eq(variables['Agent.JobStatus'], 'Failed')

参考https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions?view=vsts

这应该这样做。