如何配置Jenkins Gerrit触发事件以排除文件路径?

bkh*_*uri 5 gerrit jenkins jenkins-plugins

背景

我的git存储库由Gerrit服务器托管。当评论被推送到Gerrit时,我们还使用Jenkins以及Gerrit Event和Git Plugin来触发自动创建jenkins作业。

说git repo具有以下文件夹结构

ProjectA
    - .git
    - folderA
    - folderA/folderA1
    - folderA/manual_tests
    - folderA/manual_tests/file1
    - folderB
    - folderB/folderB1
    - folderB/manual_tests/file2
    - folderC
    - folderC/folderC1
    - folderC/manual_tests/file3
    - folderD
    - folderD/folderD1
    - folderD/folderD1/FolderD11
    - folderD/folderD1/FolderD11/manual_tests/file4
    - folderD/folderD1/FolderD12
    - folderD/folderD2
Run Code Online (Sandbox Code Playgroud)

当前,通过Path使用pattern 指定Type,将Jenkins作业定义为在所有分支上运行**。此配置使作业在每次审阅时运行。

问题

这是我要完成的工作:

  • 如果代码检查仅包含对任何manual_tests文件夹所做的更改,那么我不想让詹金斯·乔布斯被触发。
  • 如果评论包含至少一个不是的文件/文件夹,则manual_tests触发作业

我尝试添加模式为的File Pathwith类型,但这没有实现我的最终目标。我尝试了各种正则表达式模式,但从未实现最终目标。RegExp(?!.*manual_tests.*).*

如果Gerrit评论仅包含manual_tests文件夹中的更改,是否可以不触发Jenkins作业?

Ste*_*ing 1

表单下方的按钮Add Topic展示了这样的功能。

Gerrit 的屏幕截图

帮助文本解释道:

然后,您可以选择提供要触发的特定文件路径的名称和主题名称。

  • 仅当补丁集包含特定文件夹中的文件时才触发构建。
  • 仅当更改属于某个主题时才触发构建。

  • 这只是一个包含,但有时您需要从包含的路径中排除某些内容。 (2认同)