首页 > 解决方案 > 子管道是否可以由 azure 管道中不同 repo 中的不同分支的父管道触发?

问题描述

我在分支 main 下的 repo1 中创建了一个父管道。我创建了两个子管道,child1 在分支 main 下的 repo_child1 中,child2 在分支 new_branch 下的 repo_child2 中。

以下是管道的代码:

父管道代码:

    trigger: none

    pool:
     vmImage: ubuntu-latest
   
   stages:
     stage: child1
     jobs:
       job:
         steps:
           script: echo "trigger child 1 pipeline"
    
     stage: child2
     jobs:
       job:
         steps:
           script: echo "trigger child 2 pipeline"

Child1 管道

    trigger: none

    pool:
     vmImage: ubuntu-latest
   
    resources:
     pipelines:
       pipeline: 'someidforparent'
       source: 'parent'
       trigger: 
         stages:
          - child1

  stages:
    stage:
    jobs:
      job:
        steps:
          script: echo "you are in child1 pipeline"

child2 管道

    trigger: none

    pool:
     vmImage: ubuntu-latest
   
    resources:
     pipelines:
       pipeline: 'someidforparent'
       source: 'parent'
       trigger: 
         stages:
          - child2

    stages:
      stage:
      jobs:
        job:
          steps:
            script: echo "you are in child2 pipeline"

当我运行父管道时,在执行 parent 中的 child1 阶段后触发 child1 管道。但是永远不会调用 child2 管道。

您能帮我理解在父管道中执行阶段 child2 后未触发 child2 管道的原因吗?

提前致谢。

标签: azureazure-pipelinespipelineazure-pipelines-yaml

解决方案


您能帮我理解在父管道中执行阶段 child2 后未触发 child2 管道的原因吗?

那是因为child2.yml分支 main 中不存在管道文件。

当我们设置阶段过滤器时,它将在主分支中搜索触发的管道文件parent.yml,然后在同一分支中搜索 child2.yml mainchild2那就是你在repo_child2分支下的原因new_branch没有被触发。

要解决此问题,您可以为以下内容添加构建完成child2

在此处输入图像描述


推荐阅读