Azure DevOps 中的多个 YAML 构建管道

Posted

技术标签:

【中文标题】Azure DevOps 中的多个 YAML 构建管道【英文标题】:Multiple YAML build pipelines in Azure DevOps 【发布时间】:2019-05-14 23:12:27 【问题描述】:

我目前正在尝试使用新的 YAML 方式在 Azure DevOps 中为我的 Angular 应用程序创建多个构建管道。 当我使用“旧版”可视化构建器时,我曾经为我设置的不同环境(开发、登台、产品)创建一个新的构建管道。

但由于我每次尝试创建新管道时都切换到 YAML 样式的构建定义,因此我会被重定向到现有的 azure-pipelines.yml。据我所知from the docs 也不可能在单个.yml 文件中定义多个管道。

Azure DevOps 目前不支持此方案吗?

【问题讨论】:

YAML 应该支持同一个文件中的多个文档。只需在文档之间添加 3 - 即可。喜欢:文档 1 --- 文档 2 【参考方案1】:

支持。 azure-pipelines.yml 由 VSTS 自动获取,您可以创建尽可能多的 yaml 文件并为这些文件手动创建构建。这是唯一的区别。

因此您需要使用不同的 yaml 文件为不同的环境手动创建构建。

在构建步骤选择中选择这个:

【讨论】:

我刚刚将一个新的 .yml 构建定义添加到我的源代码的根目录,并将它一直合并到我的主分支,但它没有显示出来。另外,我该如何命名管道? 您只需要像往常一样手动创建一个新版本 呃,所以你需要使用不支持 YAML 的可视化构建器来选择你手动创建的 YAML 文件。好吧,这并不令人困惑……不过还是谢谢 这也是如何指定.azure-pipelines.yml,如果更喜欢点名而不是默认azure-pipelines.yml 如果有人感兴趣,我已经创建了一个关于如何做到这一点的逐步博客sethreid.co.nz/…【参考方案2】:

@4c74356b41 的答案是正确的,但现在您可以使用不同的 yaml 文件创建尽可能多的构建配置,并且还可以在不创建手动构建的情况下进行持续集成。

在新的管道流程中,请按照以下步骤操作:

1.选择您的代码在哪里:

2. 选择代码的存储库(具有 yml 文件的存储库):

3. 在配置管道上,选择现有 Azure Pipelines YAML 文件

4. 选择 yaml 文件所在的分支和路径,然后继续: 注意:如果未显示,请确保您的文件具有 .yml 扩展名

5.最后点击运行

注意:以这种方式创建管道后,它将激活持续集成,但如果您仍想手动构建,请按照下一个:

选择您的构建,然后选择触发器:

然后禁用持续集成:

或者更简单,只需将 triger: none 添加到您的 yaml 文件中。

【讨论】:

pr触发器和ci触发器有什么区别? 把它想象成:CI 总是,对于所有的分支,PR,只有在你创建或更新与 PR 相关的分支时才会执行。在新的 Multistage-Pipelines 中更容易 :),您可以从 yaml 配置所有内容。 假设我从我的个人分支创建 PR 到 dev 分支,并将 yaml 中的 pr 触发器设置为 dev 分支,这是否意味着每次我创建一个 PR 到 dev 分支时,它都会启动 PR 构建? 哦,对了,我忘了说你不能从 YAML 配置 PR,你需要从 BRANCH POLICY 配置它,所以 PR 可以从你设置策略的任何分支构建。另一方面,YAML 有一个配置,可以在 CI 模式下包含一些分支。【参考方案3】:

流程已经改变。截至 2020 年 6 月,步骤如下:

第 1 步 - 从管道中,单击 New Pipeline

第 2 步 - 选择源、存储库和默认管道类型后,单击此处重命名管道 YAML 文件:

第 3 步 - 通过单击 rename/move 重命名管道:

【讨论】:

【参考方案4】:

可以通过 Azure DevOps 配置多个 YAML 构建管道。有许多免费的第三方扩展可以帮助您配置管道并帮助您轻松维护它们。我使用这个名为 WhiteSource Bolt 的免费扩展,它允许您保持 Azure DevOps 操作的安全和敏捷。按照以下步骤配置 YAML 管道:

    创建一个新项目,为其提供名称和可选描述 从主菜单中,选择“管道”→“WhiteSource Bolt”。 Screenshot attached 填写注册表。 要设置作业,请转到“管道”→“构建”→“新建”→“新建构建管道”。 选择代码的来源。您可以使用 YAML 创建管道。 在“您的代码在哪里?”屏幕中,选择启用 YAML 的选项。 在选择存储库屏幕中,选择您的存储库。 在配置您的管道中,选择相关的管道配置。 在查看您的管道 YAML 中,添加以下文本作为构建后步骤。这会在您的构建管道上激活 WhiteSource 集成。
任务:WhiteSource Bolt@19 displayName: 'WhiteSource Bolt'
    点击保存并运行。

同样,您可以返回主菜单并按照相同的步骤添加另一个管道,这就是我将多个 YAML 管道添加到我的项目的方式。它当然也适合你。

【讨论】:

以上是关于Azure DevOps 中的多个 YAML 构建管道的主要内容,如果未能解决你的问题,请参考以下文章

如何在 azure devops YAML 管道中将单个代理用于多个作业/阶段

Azure Devops Pipeline YAML 中的 Git 标记名称

合并 PR 后如何限制 Azure DevOps YAML 管道中的关联工作项?

Azure Devops - 将 YAML 脚本中的变量设置为日期时间

Azure DevOps YAML - 手动恢复多个项目

如何排除对管道 yaml 文件的更改以触发构建 i azure devops?