同一组织跨项目,如何通过Azure DevOps阶段触发测试流水线?
Azure DevOps支持阶段触发跨项目测试流水线吗?
支持。你当前用的resources.pipelines.trigger是流水线完成后触发的机制,要在主流水线运行的某个阶段触发测试流水线,需要在主流水线的对应阶段中主动添加触发任务,而非依赖测试流水线的资源配置。
实现方法有两种:
方法1:用Azure CLI任务触发
在主流水线的目标阶段中添加Azure CLI任务,执行az pipelines run命令直接触发测试流水线:
stages: - stage: Build jobs: - job: BuildJob steps: # 你的构建步骤... - stage: TriggerTestPipeline jobs: - job: TriggerJob steps: - task: AzureCLI@2 inputs: azureSubscription: '你的Azure DevOps服务连接' scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az pipelines run --name "Test" --project "private" --org https://dev.azure.com/你的组织名
注意:需要确保服务连接对应的身份拥有
private项目中测试流水线的队列构建权限。
方法2:用内置的“Trigger a pipeline”任务
在主流水线的目标阶段中添加内置的「Trigger a pipeline」任务,可视化配置触发参数:
stages: - stage: Build jobs: - job: BuildJob steps: # 你的构建步骤... - stage: TriggerTestPipeline jobs: - job: TriggerJob steps: - task: TriggerPipeline@1 inputs: serviceConnection: '你的Azure DevOps服务连接' project: 'private' pipeline: 'Test' # 可选:指定触发分支、传递参数等 # branch: 'main' # parameters: '{"env": "test"}'
两种方式都能在主流水线的指定阶段主动触发跨项目的测试流水线,替代原来的流水线完成后触发逻辑。
内容的提问来源于stack exchange,提问作者dekode
相关产品推荐
相关产品推荐

