【问题标题】:Is there any way to rollback devops pipeline on last successful?有没有办法在最后一次成功时回滚 devops 管道?
【发布时间】:2020-12-07 08:33:07
【问题描述】:

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

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

【问题讨论】:

  • 嗨@Sudarshan Sharma。我在发布管道中分享了一个自动重新部署成功阶段的方法。请检查它是否能满足您的要求。如果它不起作用,您可以分享您的 powershell 脚本和遇到的问题。谢谢

标签: azure powershell azure-devops azure-pipelines-release-pipeline azure-pipelines-release-task


【解决方案1】:

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

当stage失败时,会重新部署当前stage的最后一次成功发布。

例如:

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

更新:

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

示例如下:

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

也可以按照输入阶段的顺序进行排序。

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

【讨论】:

  • 是的,但此选项仅适用于发行版中的特定 STAGE。当新版本中的任何阶段失败时,我正在尝试重新部署版本中的所有阶段。 Microsoft 不提供此类功能来重新部署任何以前的版本。
  • 嗨@SudarshanSharma。请检查我的更新。您可以使用 Release Orchestrator 任务。这个任务可以更方便的满足你的需求(对比powershell)
  • 谢谢,在我的情况下,Release Orchestrator 无法正常工作。但是使用此“最大并行部署数”选项,它可以完美运行
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
相关资源
最近更新 更多