问题描述
我正在使用模板构建管道(接下来将使用相同的模板构建更多管道)。我的问题是,当我更改模板中的某些内容时,将执行管道,这意味着当有更多使用该模板的管道时,将全部执行。
是否有任何迹象表明当模板更改时我不需要自动执行管道?
这是我的模板
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
解决方法
您可以将路径过滤器用于管道触发器。例如,将以下内容添加到管道yaml文件中。
resources:
....
trigger:
paths:
exclude:
- path/to/template.yml
extends:
....
指定上述路径过滤器后,将管道触发的模板Yaml文件排除在外。更改模板文件后,不会执行管道。
有关更多信息,请参见here。