发布重新部署跳过 "Skipped" 应该 运行 的任务
Release redeploy skipping "Skipped" tasks that should run
我在 Azure DevOps 中创建了一个经典的发布管道,如下所示(这只是为了测试和验证我是否可以重新创建我在另一个管道中遇到的问题):
每个部署组作业都配置为“运行 此作业”“仅当所有先前的作业都成功时”。它工作得很好,除非其中一个 PowerShell 脚本失败并且我想重新部署。例如,假设“启动维护模式”的 PowerShell 脚本任务失败,我重新部署并选择选项以仅“重新部署到所有处于失败、取消或跳过状态的作业和部署组目标”。如果我这样做,它会跳过“做某事,任何事情”中的 PowerShell 任务(如预期的那样),然后 运行 是“启动维护模式”的失败 PowerShell 任务(如预期的那样,这次成功),但随后它跳过了“停止维护模式”的 PowerShell 任务(不是预期的,因为它上次被跳过并且在重新部署期间应该是 运行)。它显示“由于条件不满足,作业被跳过。”,除此之外没有进一步的细节:
我试过使用变量表达式的自定义条件来尝试让它工作,但我没有运气。我 missing/not 了解什么?需要做什么才能使其重新部署并正常工作,以便它实际上 运行 完成之前跳过的所有任务?
我能看到这个问题,这是因为“Do Something, Anything”作业被跳过,然后不满足“停止维护模式”作业的条件。
作为解决方法,您可以按照以下步骤操作。
- 将管道变量
runYes
设置为 false
- 添加 PowerShell 任务作为“启动维护模式”作业的最后一步,并将其设置为“仅当所有先前任务都成功时”。
- PowerShell 任务将 运行 休息 API: Definitions - Update 以将管道变量
runYes
更新为真。
- 使用变量表达式为“停止维护模式”作业设置自定义条件
eq($(runYes), 'true')
因此,“停止维护模式”作业将 运行 只有“启动维护模式”作业成功。另一种更简单的方法是选择重新部署到“所有作业和所有部署组目标”,因此所有部署作业都将 运行.
我在 Azure DevOps 中创建了一个经典的发布管道,如下所示(这只是为了测试和验证我是否可以重新创建我在另一个管道中遇到的问题):
每个部署组作业都配置为“运行 此作业”“仅当所有先前的作业都成功时”。它工作得很好,除非其中一个 PowerShell 脚本失败并且我想重新部署。例如,假设“启动维护模式”的 PowerShell 脚本任务失败,我重新部署并选择选项以仅“重新部署到所有处于失败、取消或跳过状态的作业和部署组目标”。如果我这样做,它会跳过“做某事,任何事情”中的 PowerShell 任务(如预期的那样),然后 运行 是“启动维护模式”的失败 PowerShell 任务(如预期的那样,这次成功),但随后它跳过了“停止维护模式”的 PowerShell 任务(不是预期的,因为它上次被跳过并且在重新部署期间应该是 运行)。它显示“由于条件不满足,作业被跳过。”,除此之外没有进一步的细节:
我试过使用变量表达式的自定义条件来尝试让它工作,但我没有运气。我 missing/not 了解什么?需要做什么才能使其重新部署并正常工作,以便它实际上 运行 完成之前跳过的所有任务?
我能看到这个问题,这是因为“Do Something, Anything”作业被跳过,然后不满足“停止维护模式”作业的条件。
作为解决方法,您可以按照以下步骤操作。
- 将管道变量
runYes
设置为 false - 添加 PowerShell 任务作为“启动维护模式”作业的最后一步,并将其设置为“仅当所有先前任务都成功时”。
- PowerShell 任务将 运行 休息 API: Definitions - Update 以将管道变量
runYes
更新为真。 - 使用变量表达式为“停止维护模式”作业设置自定义条件
eq($(runYes), 'true')
因此,“停止维护模式”作业将 运行 只有“启动维护模式”作业成功。另一种更简单的方法是选择重新部署到“所有作业和所有部署组目标”,因此所有部署作业都将 运行.