如何阻止azure-devops发布管道失败

时间:2018-10-10 15:03:26

标签: azure-devops

我有一个发布构建版本的发布管道。它设置为在构建完成后运行。内部版本具有包含产品版本号的内部版本号。我只想部署零个版本号以.0结尾的版本

我尝试添加带有Powershell任务的Stage,该任务检查版本号,如果版本不是零,则失败。我还尝试在部署阶段添加一个门,该门还检查版本号。

这两种检查方式都导致发布管道失败,并且我收到一封电子邮件,告诉我它失败了。

如何使发布管道成功,但是对于非零构建却什么都不做?

功能强大的是:

if ( "$(Release.Artifacts._TheBuild.BuildNumber)" -like ".0 " )
{
    exit 0
}
else
{
    exit 1
}

gate调用了azure函数,并将$(Release.Artifacts._TheBuild.BuildNumber)作为参数传递。 Azure函数根据版本号是否以零结尾返回状态为true或false的json。门立即对此进行评估,最小重试和超时分别为5分钟和6分钟。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您只想部署版本号以.0结尾的版本

您可以尝试添加发布管道持续部署触发器并添加分支过滤器,该过滤器只能通过标签搜索来搜索版本号。

要执行此操作,请首先转到要更改的发行版,单击发行版名称旁边的...省略号,然后单击“编辑”。

这应该使您进入版本的管道视图。到达此处后,单击小小的照明螺栓图标以打开“持续部署触发器”编辑器:

Azure DevOps - Editing the Continuous Deployment Trigger on a Release Pipeline

这将打开右侧的编辑器。在这里,您将看到一个编辑Build分支过滤器的地方。单击+添加按钮以添加一个。

将弹出一个新行,供您配置过滤器。我相信在这里您可以通过build标签过滤版本号。

Azure DevOps - Adding a Build branch filter to a continuous deplyment trigger

显然,您还必须编辑构建管道以添加此标记,以便可以在此发行版中对其进行过滤。

您将在“构建标签”输入中添加此标签。

答案 1 :(得分:1)

这可以通过Custom Condition下的control option完成(对于每个任务都可以使用)。

您可以通过定义运行特定任务的特定条件来实现。

在您的情况下,您想在版本号为0时运行任务。因此,您只需在custom conditions中定义control Options来指定类似

的编码

and(succeeded(), eq(variables['Release.Artifacts._TheBuild.BuildNumber'], '0'))

enter image description here

因此,仅当条件满足时此任务才会执行,否则该任务将跳过其执行。