有没有办法在上次成功时回滚 DevOps 管道?

Sud*_*rma 2 powershell azure azure-devops azure-pipelines-release-pipeline azure-pipelines-release-task

我试图在最新版本失败时在发布管道中回滚,它将恢复到最后成功的状态。我添加了一个 PowerShell 任务,该任务仅在以前的任务失败时运行,并且脚本上次成功触发,但问题是它开始随机而不是按顺序重新部署阶段。## 标题 ##

在我的场景中,我有 3 个阶段,在每个阶段结束时,我添加了一个 PowerShell 任务,该任务仅在前一个任务失败时才会触发,并相应地编写了一个脚本来触发最后一次成功发布。所以它将触发上一个版本中的所有阶段,因为我没有任何 API 或命令来通过 id 触发版本。我有一个仅触发阶段的 API。所有阶段都按顺序排队但随机运行。 在此输入图像描述

Kev*_*SFT 6

由于您使用的是发布管道,我建议您可以Auto-redeploy trigger option在每个阶段都使用。

在此输入图像描述

当阶段失败时,它将重新部署当前阶段的最后一个成功的版本。

在此输入图像描述

例如:

设置Auto-redeploy trigger option为第 2 阶段 -> 第 2 阶段失败 -> 自动重新部署最后一个成功的第 2 阶段

更新:

根据您的要求,您可以尝试使用Release OrchestratorRelease Orchestrator扩展中的任务。此任务可用于管理发布。

这是示例:

在此输入图像描述

您可以使用此任务来替换 powershell 任务。该任务支持选择重新运行的版本名称和目标阶段。

也可以根据输入阶段顺序进行排序。

在此输入图像描述

注意:您还需要Maximum number of parallel deployments将 的设置为 2 each stage -> Pre-deployment conditions-> Deployment queue settings

在此输入图像描述