如何设置詹金斯变更集排除设置

how to set jenkins changeset exclude setting

我想知道 Jenkins 中是否有与变更集相反的东西。 例如,在文档(https://www.jenkins.io/doc/book/pipeline/syntax/)中,针对变更集设置给出了示例:

when { changeset pattern: ".TEST\.java", comparator: "REGEXP" } or when { changeset pattern: "*/*TEST.java", caseSensitive: true }

我想知道我是否可以设置 "changeset exclude" 模式,以便匹配此模式的文件不会触发某些阶段。

我自己还没有尝试过,但是用 not{} 包围条件应该可以解决问题:

when {
  not {
    changeset pattern: "*/*TEST.java", caseSensitive: true
  }
}

参见 Pipeline Syntax (when)(向下滚动到 not)。

您可以使用否定先行正则表达式模式来创建排除某些路径的变更集过滤器,例如:

when {
  changeset pattern: '^(?!.*\.TEST\.java).*', comparator: "REGEXP"
}