azure管道 - 如何根据条件任务结果中断/取消发布

问题描述 投票:0回答:1

我有一个由CI触发的发布管道,如果该版本尚不存在,我想推送新版本的nuget包。

为此我有一个简单的命令行任务,它检查nuget.org上是否存在nuget并将结果存储在环境变量中。

然后我可以设置下一步的条件,如果该值变量为真,则只执行该步骤。

enter image description here

这一切都很好,但是我想知道我怎么能简单地停止发布过程并跳过所有后续步骤,而不是逐个设置它们的条件。

另外,为此,如何通过任务将构建状态设置为“已取消”?

azure-devops azure-pipelines azure-pipelines-release-pipeline azure-pipelines-build-task
1个回答
0
投票

您可以使用PowerShell任务取消当前的构建或发布:

Write-Host "##vso[task.setvariable variable=agent.jobstatus;]canceled"
Write-Host "##vso[task.complete result=Canceled;]DONE"

因此,在发布管道中添加一个带有上述代码的Powershell任务,并且在自定义条件下将其配置为仅在您不想上载NuGet时运行,在此任务之后,其后的所有任务都将被取消。

PS - 状态将为“成功”,但实际上构建/发布将被取消。

如果您想要查看状态“已取消”,则需要使用Rest API,请检查this PowerShell脚本。

© www.soinside.com 2019 - 2024. All rights reserved.