资源>未触发存储库触发器,并且未在Azure DevOps yaml管道中禁用默认触发器

时间:2020-02-19 18:37:49

标签: azure azure-devops yaml

我在azure-pipelines.yml中设置了一个触发器,如下所示:

  1. scriptsconn代表与包含部署管道yaml的默认/ self存储库的连接。

  2. serviceconn表示我们正在使用模板和发布任务构建和部署的微服务存储库。

我们有多个具有类似构建管道的微服务,因此这种方法是一种尝试,以减少更新这些步骤所需的工作量。

现在,我们遇到的问题有两个:

  1. 无论我们在scriptsconn资源->存储库部分中指定哪个分支,构建都会触发对存储库中每个分支的每次提交。

  2. 无论我们如何为serviceconn配置触发器,我们都无法使构建为任何提交,创建的PR或合并的PR触发。

根据此配置下面的链接,应该很简单。有人可以指出我们正在犯什么错误吗?

https://github.com/microsoft/azure-pipelines-yaml/blob/master/design/pipeline-triggers.md#repositories

resources:
  repositories:
    - repository: scriptsconn
      type: bitbucket
      endpoint: BitbucketAzurePipelines
      name: $(scripts.name)
      ref: $(scripts.branch)
      trigger:
        - develop
    - repository: serviceconn
      type: bitbucket
      endpoint: BitbucketAzurePipelines
      name: (service.name)
      ref: $(service.branch)
      trigger:
        - develop
      pr:
        branches:
        - develop


variables:
  - name: service.path
    value: $(Agent.BuildDirectory)/s/$(service.name)
  - name: scripts.path
    value: $(Agent.BuildDirectory)/s/$(scripts.name)
  - name: scripts.output
    value: $(scripts.path)/$(release.folder)/$(release.filename)
  - group: DeploymentScriptVariables.Dev

stages:
- stage: Build
  displayName: Build and push an image
  jobs:  
  - job: Build
    displayName: Build
    pool:
      name: 'Self Hosted 1804'
    steps:   
    - checkout: scriptsconn
    - checkout: serviceconn

1 个答案:

答案 0 :(得分:0)

您链接到的文档实际上是design document。因此,有可能\可能未实现该页面上的所有内容。在设计文档中,我还看到以下行:

但是,今天没有在存储库资源上启用触发器。因此,我们将保留当前行为,在下一版本的YAML中,默认情况下将启用触发器。

YAML模式上的当前文档似乎表明Repository Resources yet不支持触发器。

就像一个FYI一样,您可以在此URL上看到当前支持的YAML模式。

https://dev.azure.com/{organization}/_apis/distributedtask/yamlschema?api-version=5.1

enter image description here

我不确定template wise之后的情况。一般建议,如果要使用可重用的内容模板工作流程,则可以从每个微服务存储库中的azure-pipelines.yml文件中触发,从而消耗了模板中的可重用步骤。希望有帮助!