我们已经设置了一个构建定义,它会创建一个bug并将其分配给" requestor"加入构建失败。见下文:
默认情况下,错误是在同一个项目中创建的。如何更改此项以在其他项目中创建错误?原因是,我们的工作项目跟踪与我们的Git回购项目处于不同的项目中(由于重新洗牌而未进行重组)。请注意,这两个项目都在同一个帐户下。
查看工具提示,它提供了一些示例字段,是否有相应的字段用于"项目" ? (System.Project?!)
答案 0 :(得分:1)
VSTS构建中的“失败时创建工作项”选项只能在同一项目中创建工作项。
如果构建失败,则可以通过添加PowerShell任务来实现创建Bug的解决方法。详细步骤如下:
在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
从第二个任务到结束任务(PowerShell任务),将“运行此任务”选项更改为即使上一个任务失败,除非构建已取消:
因此,当构建失败时,将根据您在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
这应该这样做。