当天蓝色devops中的模板更改时,我可以排除作业的执行吗?

问题描述

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

是否有任何迹象表明当模板更改时我不需要自动执行管道?

这是我的模板

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