gpt4 book ai didi

azure-devops - 使用 YAML 管道和 gitflow 时如何仅更新 Azure Devops 中的管道?

转载 作者:行者123 更新时间:2023-12-01 21:27:24 24 4
gpt4 key购买 nike

我们目前正在使用经典的 Azure 管道(构建和发布管道)。它们运行良好,因为如果我们需要对管道进行更改,只需修改管道并从 UI 安排构建即可。

现在 Microsoft 正在插入 YAML 管道和基础架构即代码,因此我们计划在下一个项目中使用 YAML 和多阶段管道。

当配置在源代码控制中时,我现在还没有找到只更新管道的方法。例如,假设 test 环境的管道由于某种原因中断,我需要通过仅更改 YAML 配置来修复它。我会只对 Release 分支进行更改,然后将其合并回 develop 分支吗?

我们过去在经典模式下有专用的构建管道和专用的发布管道,因此构建管道将创建一个包,而不管它在哪个分支上被触发。然后将触发发布管道,它会检查构建工件来自的分支,并使用相应的配置部署包。

Release Pipeline (classic)

这给了我们很大的灵 active ,使我们可以随时随地自动和手动部署版本。我没有看到从 YAML 管道中获得任何好处。

例如,我们可以制作一个生产版本(master 分支)并在测试环境中使用该版本来尝试重现错误。

当我不能只修改管道但必须接受来自开发分支的所有更改时,这将如何与 YAML 管道一起工作?仅使用 YAML 构建管道并使用经典发布管道是否可能(或可行)?

最佳答案

我们为我们的应用程序使用部署环,我们有一个单一的构建管道,它利用条件逻辑根据源分支包含或排除特定任务。如果您绝对必须拥有不同的管道,我建议您将模板文件用于常见步骤(非常类似于经典管道中的任务组)。使用 YAML,您可以制作阶段、作业或步骤模板,因此这些超出了任务组的能力。我实现的解决方案如下所示:

  • 构建 repo
    • 模板
      • 阶段
        • 并行单元测试.yml
        • build-artifacts.yml
        • 发布工件.yml
        • 部署.yml
      • 步骤
        • pre-build.yml
        • 构建.yml
        • post-build.yml
        • 单元测试.yml
        • 下载-artifacts.yml
        • 发布工件.yml
        • 部署.yml
  • 应用 repo
    • 管道
      • master-release.yml
      • ring-deploy.yml
    • [项目文件]

构建存储库中的所有模板都被编码为尽可能与服务无关。一切可以改变/将要改变的东西都已经参数化了。我们甚至使用 YAML 逻辑表达式 ${[ if eq(parameters.shouldRun, true) }}: 来打开或关闭仅适用于特定环境/环的步骤。我建议阅读这些文档:

Templates

YAML Expressions

关于azure-devops - 使用 YAML 管道和 gitflow 时如何仅更新 Azure Devops 中的管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62893913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com