首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果手动干预任务被拒绝,是否有可能将发布标记为成功?

如果手动干预任务被拒绝,是否有可能将发布标记为成功?
EN

Stack Overflow用户
提问于 2019-06-05 13:23:25
回答 1查看 675关注 0票数 1

我目前正试图为服务架构部署创建一个天蓝色发布管道。对于包含多个作业/任务的测试环境,我有一个单独的阶段。

在成功部署到环境之后,我们将运行集成测试和冒烟测试。

在烟雾测试之后,我插入了一个手动干预任务,允许Devs选择运行回归测试(恢复)或退出进程(拒绝)。如果所有以前的任务(部署、集成和冒烟)都通过,并且手动干预被拒绝,I希望将发布管道标记为成功。

如果手动干预是用简历响应的,那么以下任务的结果应该决定发布管道的结果。

我找不到这方面的例子,因此觉得这是不正确的做法。一个更合适的做法是引入一个中间环境,作为成功的烟雾测试的结果,在此环境下进行回归测试?

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 12:55:26

通过设计,当用户拒绝干预时,发布状态就变成了“失败”。

我想解决这个问题的办法是:

1)用户总是“恢复”干预,但“评论”会有所不同。

2)之后,在回归测试之前,添加一个PowerShell任务来检查前面的注释,并在注释为“运行测试”的情况下设置一个值为"true“的新变量。

3)在回归测试任务中,将一个定制条件设置为只在新变量等于"true“时才运行。

例如,如果批准继续使用“运行测试”进行干预,则将执行Regresstions测试。因此,您需要一个PowerShell脚本来检查批准所写的内容,如果审批文本是“运行测试”,我们将设置一个新变量runTest = true

代码语言:javascript
运行
复制
$url = $(System.TeamFoundationServerUri)$(System.TeamProject)/_apis/Release/releases/$(Release.ReleaseId)/manualinterventions?api-version=5.0
$header = @{ Authorization = "Bearer $env:System_AcessToken" }
$release = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json -Headers $header
$comment = $release.value.comments
if($comment -eq "Run Tests")
{
    Write-Host "##vso[task.setvariable variable=runTest]true"
}

然后,在回归测试任务中,只有当runTest变量是true时,才需要设置一个自定义条件来运行

代码语言:javascript
运行
复制
and(succeeded(), eq(variables['runTests'], 'true'))

现在,如果批准写了“运行测试”,那么测试将被执行:

如果没有,测试将被跳过,但是发布将“成功”:

注意:对于PowerShell脚本,您需要悠乐脚本访问OAuth令牌(选中代理作业选项中的复选框):

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56461391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档