0

我正在使用模板构建管道(接下来将有更多使用相同模板的管道)。我的问题是当我更改模板中的某些内容时,管道会被执行,这意味着当有更多管道使用模板时,所有的都会被执行。

反正有没有表明当模板更改时我不需要自动执行管道?

这是我的模板:

parameters:
- name: repoName # name of the parameter; required
  type: string # data type of the parameter; required
  default: ''


jobs:
- job: BuildImage
  displayName: Build

  pool:
    name: Azure Pipelines
    demands: java  
    vmImage: ubuntu-20.04
    
  steps:
  - checkout: ${{ parameters.repoName }}
    clean: true
    fetchDepth: 1

  - task: Gradle@2
    displayName: 'gradlew clean'
    inputs:
      workingDirectory: ./
      tasks: clean
      publishJUnitResults: false
      jdkVersionOption: 1.11

  - task: Gradle@2
    displayName: 'gradlew build'
    inputs:
      options: '-x test'
      publishJUnitResults: false
      jdkVersionOption: 1.11

  ##Fix Jacoco
  - task: Gradle@2
    displayName: 'gradlew test'
    inputs:
      tasks: test
      publishJUnitResults: false
      codeCoverageToolOption: JaCoCo
      jdkVersionOption: 1.11

  ## Add Sonar 

这里的模板正在使用它:

resources:
  repositories: 
  - repository: repository
    type: git
    name: CORE_tpaas-utilities
    ref: 'refs/heads/development'

extends:
  template: ../templates/ci.yml
  parameters: 
    repoName: repository
4

1 回答 1

1

您可以将路径过滤器用于管道触发器。例如,将以下内容添加到您的管道 yaml 文件中。

resources:
....

trigger: 
  paths:
    exclude:
    - path/to/template.yml

extends:
....

在您指定上述路径过滤器以排除管道触发器的模板 yaml 文件后。对模板文件进行更改时,不会执行管道。

请参阅此处了解更多信息。

于 2020-10-27T05:41:14.960 回答