Azure DevOps:在多个仓库的流水线中跟踪构建状态

106次阅读
没有评论

问题描述

在使用Azure DevOps的多仓库流水线时,有一个需求是希望能够在不同于包含 azure-pipelines.yaml 文件的 “self” 仓库中的提交上跟踪构建状态。具体来说,当在另一个仓库中的提交进行构建时,不显示状态徽章。

解决方案

请注意以下操作可能受到Azure DevOps的版本差异影响,具体步骤可能会有所变化。建议在操作前进行适当的版本兼容性测试。

方案1:使用 Azure DevOps 多仓库流水线

Azure DevOps 提供了多仓库流水线功能,允许你在一个流水线中跨多个仓库执行构建和部署操作。这使得可以在一个集中的位置跟踪构建状态并显示状态徽章。

以下是如何配置多仓库流水线以跟踪构建状态的步骤:

  1. 打开 Azure DevOps 项目并导航到 “Pipelines”。
  2. 创建一个新的流水线或编辑现有的流水线。
  3. 在流水线定义文件 azure-pipelines.yaml 中,确保你正确设置了需要构建的所有仓库。
  4. 对于每个仓库的步骤,你可以使用 Azure DevOps 提供的任务来构建、测试和部署代码。在每个任务的最后,可以使用 Publish Build Status 任务来更新构建状态。
  5. 在仓库中的提交上,状态徽章将会显示构建状态。

以下是一个示例的 azure-pipelines.yaml 配置,用于跨多个仓库执行构建操作并更新构建状态:

trigger:
- '*'

resources:
  repositories:
  - repository: self
    ref: main
    connection: <self_repository_connection_name>
  - repository: other_repo
    type: git
    name: <other_repository_name>
    ref: main

stages:
- stage: Build
  jobs:
  - job: Build
    steps:
    - script: echo Building...
      displayName: Build
    - task: PublishBuildStatus@1
      inputs:
        buildStatus: 'succeeded'
      condition: always()

请注意,上述配置中的 <self_repository_connection_name><other_repository_name> 需要替换为实际的值。

方案2:使用自定义状态徽章

如果你需要在其他系统中显示构建状态徽章,你可以考虑创建自定义状态徽章,然后将其嵌入到其他系统中。

  1. 打开 Azure DevOps 项目并导航到 “Pipelines”。
  2. 打开需要跟踪构建状态的流水线。
  3. 在流水线页面的右上角,点击 “Status badge”。
  4. 根据需要选择构建状态并自定义徽章样式。
  5. 获取生成的徽章 Markdown 代码。
  6. 将 Markdown 代码嵌入到其他系统、网站或文档中,以显示构建状态徽章。

这种方法允许你在其他系统中显示自定义的构建状态徽章,不受特定仓库的限制。

总结

通过使用 Azure DevOps 的多仓库流水线功能,你可以在一个集中的位置跟踪多个仓库中的构建状态,并显示状态徽章。另外,你还可以创建自定义状态徽章,并将其嵌入到其他系统中,以实现更灵活的构建状态显示需求。根据实际情况选择适合你团队的方案,以便有效地跟踪构建状态。

正文完