【问题标题】:How to stop azure-devops release-pipeline from failing如何阻止 azure-devops 发布管道失败
【发布时间】:2018-10-10 15:03:26
【问题描述】:

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

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

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

如何使发布管道成功,但对非零构建不做任何事情?

powershell 是:

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

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

【问题讨论】:

  • 也许版本号将始终不等于.0,根据您的条件,这将满足并导致发布失败。你也可以分享一下你迄今为止尝试过的 powershell 脚本和门部署
  • @Jayendran - 我已将详细信息添加到问题中。如果版本以 .0 结尾,则发布继续并成功。只是当它不以 .0 结尾时,目前发布显示为失败,但我希望仍然成功,因为实际上没有任何失败,我只是希望发布管道在这种情况下什么都不做。

标签: powershell azure-devops azure-pipelines


【解决方案1】:

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

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

在您的情况下,您希望在版本号为 0 时运行任务。所以你只需在control Options 中定义custom conditions 来指定像

这样的密码

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

所以这个任务只有在条件满足时才会执行,否则任务会跳过它的执行。

【讨论】:

    【解决方案2】:

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

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

    为此,首先转到您要更改的版本,单击版本名称旁边的...省略号,然后单击编辑。

    这应该会将您带到版本的管道视图。在这里,单击小闪电图标打开持续部署触发器编辑器:

    这应该会在右侧打开编辑器。在这里,您将看到一个编辑构建分支过滤器的地方。点击 + 添加按钮添加一个。

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

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

    您可以在构建标签输入中添加此标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多