在 Azure DevOps 分支上构建验证:不同存储库中的 YAML?

问题描述 投票:0回答:1

是否有人有在 Azure DevOps 分支上设置构建验证管道的经验,其中 YAML 托管在与设置分支策略的存储库不同的存储库中? 示例:

Repo A - 这是存储验证管道 YAML 的位置。
  • Repo B、C、D 等 - 这是在主分支上设置构建验证的位置。
  • 需要执行的验证与上述存储库完全相同。因此,我们之所以要这样设置,是为了避免每个 repo B、C、D 等都有自己的 YAML 文件。

我们已尝试进行上述设置,但遇到了问题。尽管针对存储库 B、C、D 等内的主分支的拉取请求正确显示了构建验证,但管道不会自动触发。

此外,当我们单击 PR 概览中的“队列”按钮时,管道不会执行。根本什么也没有发生;没有管道运行,没有反馈,任何地方都看不到任何东西,并且按钮仍然可单击(见下图)。

azure devops PR validation; build visible but cannot 下面是 repo A 中重现该问题的 YAML 的简单示例:

name: $(date:yyyyMMdd)$(rev:.r) pool: name: 'default' pr: branches: include: - main jobs: - job: AssertPSRule steps: - task: PowerShell@2 inputs: targetType: inline script: | Write-Host $(Build.Repository.Name)

	
git azure-devops azure-pipelines pull-request azure-repos
1个回答
0
投票

我建议您在存储库 A 中创建可重用的阶段或作业模板,以便可以在其他存储库中轻松重用。或者,作为替代方案,创建某种

base

管道(使用 extends templates)。 存储库 A 中的基本管道示例:

parameters: - name: foo type: string jobs: - job: AssertPSRule steps: - checkout: self # checkout the repository that contains the pipeline - task: PowerShell@2 inputs: targetType: inline script: | Write-Host $(Build.Repository.Name)

添加到存储库 B、C、D 等的 YAML 管道:

# my-pipeline.yaml resources: repositories: - repository: shared type: git name: A ref: releases/1.0.0 extends: template: /pipelines/base-pipeline.yaml@shared parameters: foo: '123456'

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.