如何在Azure DevOps的p-A流水线中触发跨仓库的p-B流水线
如何在p-A的pipeline2/p2.yaml中触发流水线p-B
核心方案
由于p-B配置了trigger: none,无法通过代码提交等方式自动触发,我们可以在p-A的p2.yaml中新增一个调用Azure DevOps CLI触发p-B的Job,全程无需修改p-B的任何配置。
步骤1:配置权限
确保执行p-A流水线的账号(如项目构建服务账号、服务主体)拥有p-B流水线的队列构建权限:
- 进入p-B流水线的设置页面
- 找到「权限」选项,添加p-A的执行账号,并授予「队列构建」权限
步骤2:修改p-A的pipeline2/p2.yaml
在p2.yaml中新增一个依赖于前置任务的Job,用于触发p-B,示例代码如下:
parameters: dependsOn: [] stages: - stage: TriggerPipelineB dependsOn: ${{ parameters.dependsOn }} jobs: - job: TriggerB pool: name: 'workflow_test_pool' steps: - task: AzureCLI@2 displayName: '触发流水线p-B' inputs: azureSubscription: '<你的Azure DevOps服务连接名称>' scriptType: bash scriptLocation: inlineScript inlineScript: | az pipelines run \ --name "p-B" \ --project "<你的项目名称>" \ --branch main \ --org "<你的Azure DevOps组织URL>"
关键说明
az pipelines run命令会主动触发指定名称的流水线,这里指定--branch main是为了和p-B定时触发的分支保持一致- 需要将命令中的占位符
<你的Azure DevOps服务连接名称>、<你的项目名称>、<你的Azure DevOps组织URL>替换为实际信息 - 该Stage通过
${{ parameters.dependsOn }}继承传入的依赖参数,确保在FirstPipeline完成后再触发p-B
内容的提问来源于stack exchange,提问作者Reed_Xia
相关产品推荐
相关产品推荐

