【问题标题】:how to rollback to previous build in azure devops using yaml如何使用 yaml 在 azure devops 中回滚到以前的构建
【发布时间】:2020-09-16 04:35:09
【问题描述】:

我有一个多阶段管道 YAML 部署到不同的环境(PreDev-Dev-QA-Stage-Prod),我正在尝试实施回滚策略以回滚到以前的版本或以前的构建工件,并且正在查看此页面https://docs.microsoft.com/en-us/azure/devops/pipelines/process/deployment-jobs?view=azure-devops 但想不通,也没有找到任何例子。任何帮助表示赞赏

【问题讨论】:

  • 检查this rule,如果答案可以给你一些帮助。您可以考虑接受它作为答案。这只是一个提醒:)

标签: azure-devops azure-pipelines azure-pipelines-yaml


【解决方案1】:

根据the doc

我们目前仅支持 runOnce、rolling 和 canary 策略。

Yaml 定义中似乎不支持回滚策略。

但是您可以再次手动运行上一个阶段。然后管道可以回滚到以前的版本。

Step1:导航到上一个构建的构建摘要页面。

第 2 步:选择阶段并使用“重新运行阶段”选项。

希望这会有所帮助。

【讨论】:

  • 谢谢。是的,上一个作业中的“重新运行阶段”是一个选项,但我想知道是否有任何方法可以在 YAML 中实现(我正在使用 runOnce)如果部署失败自动回滚到上一个阶段。
  • @iab。在RunOnce策略中,您可以使用on : failureon: success来判断结果并执行步骤。如果要运行之前成功构建的whole,可以添加Azure CLI 任务并运行script。但是如果你只想运行单阶段,似乎手动操作是最有效的。这是a suggestion ticket,它可能会有所帮助。
  • 感谢@Kevin Lu-MSFT。我接受了“手动重新运行”选项,因为此时我对我们将回滚的内容(这个过程的新手)没有明确的方向,但我想我会更多地探索 RunOnce 策略以了解有关使用的一些想法它在yaml中。你有什么例子吗?
【解决方案2】:

添加一个额外的阶段怎么样,可以称为回滚。

这个阶段可以使用 Kubectl 进行回滚:

kubectl rollout undo deployment/$DEPLOYMENT

为避免每次都运行阶段,只需添加手动批准,或者您可以添加一个检查部署是否成功的门,通过运行状况检查调用,或检查监控警报,或通过运行集成测试。

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/gates?view=azure-devops

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多