代码之家  ›  专栏  ›  技术社区  ›  Nilotpal

需要从另一个管道调用其他管道:如何触发ADO管道的资源

  •  0
  • Nilotpal  · 技术社区  · 4 年前

    我需要从另一个管道触发多个管道。为此,我在YAML中获得了ADO资源进行配置。资源是指位于管道之外的管道所使用的任何资源。

    来源 : https://learn.microsoft.com/en-us/azure/devops/pipelines/process/resources?view=azure-devops&tabs=example#resources-builds

    我遵循的步骤:

    1. 创建了一个GIT回购并在其上创建了一条管道yaml。这应该是一个只会触发其他管道的伪回购。

    那里的yaml是:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    
    trigger:
    - none
    
    
    resources:
      pipelines:
        - pipeline: 02-understanding-stages-pipeline
          project: azure-devops-kubernetes-terraform
          branch: master
          source: 02-understanding-stages-pipeline
          trigger:
            branches:
              - master
            stages:
              - Build
              - DevDeploy
    

    YAML中的错误

    An error occurred while loading the YAML build pipeline. The array must contain at l 
    least one element. Parameter name: stages
    

    02理解阶段管道是另一个项目中的另一条管道。我需要从这个管道中触发和设置其他这样的管道。

    问题

    1. 关于如何从其他管道触发管道的建议
    2. 知道如何解决我遇到的错误吗
    3. 是什么 来源 管道 管道下?可以简单解释一下吗?

    提前感谢!!

    0 回复  |  直到 4 年前
        1
  •  1
  •   Krzysztof Madej    4 年前

    关于如何从其他管道触发管道的建议

    您可以使用 Trigger Build Task extension 如下所示:

    - task: TriggerBuild@3
    displayName: 'Trigger a new build of Validate-BuildVariable Update'
    inputs:
        buildDefinition: 'Your build name'
        useSameBranch: false
        branchToUse: master
        waitForQueuedBuildsToFinish: true
        authenticationMethod: 'OAuth Token'
        password: $(System.AccessToken)
    

    Rest API

    POST https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1

    知道如何解决我遇到的错误吗

    我做了一个测试,这对我来说很有效:

    trigger: none
    
    
    resources:
      pipelines:
        - pipeline: pipelineUnderstanding
          branch: master
          source: kmadof.dm-so-47-multi-stage
          trigger:
            branches:
              - master
            stages:
              - Build
              - Deploy
    steps:
    - script: echo 'siema'
    

    如果你的吸管和你在这里写的一模一样,我建议你检查一下你的水位。

    管道下的来源和管道是什么?可以简单解释一下吗?

    来源是

    生成工件的管道的名称

    管道是

    管道资源变量中使用的资源的标识符

    它只是资源对象的一个别名。请检查一下 here