【问题标题】:Is there a way to translate a yaml build pipeline to a release pipeline using Azure Devops?有没有办法使用 Azure Devops 将 yaml 构建管道转换为发布管道?
【发布时间】:2021-02-18 10:23:08
【问题描述】:

在我的构建管道中,我正在运行 Pester 测试并向输出文件夹报告。在发布期间,我想运行这些,并且只有在所有测试都通过时才进入下一阶段(部署)。我不关心结果,我只想确保它们都通过。我试图使用 GUI“复制”我现有的 yaml 文件,但不确定执行此操作的最佳方法和变量范围。是否可以将构建管道直接转换为 Azure Devops 中的 Azure 发布管道?如果可以,最好的方法是什么?

我尝试将其转换为 json,但是当我尝试导入 json 管道时出现undefined 错误。我还应该补充一点,通过查看此预览功能我看不到解决方案。

【问题讨论】:

  • 如果您的任何测试失败,您是否希望构建失败?此外,我的建议是将您的构建和发布都保留在您的 YAML 管道中。您可以在发布阶段使用 dependsOncondition 参数轻松阻止管道继续进行。
  • 是的,如果任何测试失败,我希望发布失败。我已经设法让它作为一个 powershell 脚本运行,而不是通过测试运行器,所以如果任何测试失败,我不知道如何使发布失败。
  • 明白了,有道理,你能分享你用来运行测试的脚本吗?

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


【解决方案1】:

恐怕无法将构建管道直接转换为 Azure 发布管道。

您需要手动将构建管道中的相同任务添加到发布阶段。我相信在发布管道中创建一个具有相同任务的阶段并不是一项复杂的工作。您只需要添加具有相同配置的每个任务(主要是复制和粘贴)。并在Variables 选项卡中创建相同的变量。查看有关classic CD release pipeline的文档。

还有另一种解决方法,使用多阶段 yaml 管道而不是经典的发布管道。

具有多阶段 yaml 管道。您可以轻松地在一个阶段中移动您的构建 yaml 内容。检查here 了解更多信息。见下文:

trigger: none

stages:
- stage: Test
  jobs: 
  - job: Pester tests
    pool:
      vmImage: windows-latest
    steps:
    ..

- stage: Deploy
  jobs: 
  - job: DeployJob
    pool:
      vmImage: windows-latest
    steps:
    ..

【讨论】:

  • 感谢您的回复。这无关紧要,因为我已经有一个 yaml 管道(如问题中所述)。 “还有另一种解决方法,使用多阶段 yaml 管道而不是经典的发布管道。” - 这是矛盾的,你是说可以通过发布管道做到这一点吗?
  • @i'i'i'i'i'i'i'i'i' 不,我之前以为您想将 yaml 管道转换为经典的 ui 发布管道。那么,您是否在基于 yaml 的发布管道中运行纠缠测试?你能分享脚本来运行纠缠测试吗?以及您的 yaml 发布管道定义(省略敏感信息。)。我有一个简单的测试,效果很好。失败的测试自动使我的管道失败。
猜你喜欢
  • 2019-02-18
  • 2020-03-07
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
相关资源
最近更新 更多