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

背景

我的git存储库由Gerrit服务器托管.我们还使用Jenkins以及Gerrit事件和Git插件,在审查推送到Gerrit时触发自动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

目前,Jenkins作业定义为通过使用模式**指定类型路径在所有分支上运行.此配置会导致作业在每次审核时运行.

问题

这是我想要完成的事情:

>如果代码审查仅包含对任何manual_tests文件夹所做的更改,我不希望Jenkins Jobs被触发.
>如果评论包含至少一个非manual_tests的文件/文件夹,则触发作业

我尝试添加一个类型为RegExp的文件路径,其模式为(?!.* manual_tests.*).*,但这并没有实现我的最终目标.我尝试了各种正则表达式模式,但我从来没有达到最终目标.

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

最佳答案 表单下方的“添加主题”按钮显示了这样的功能.

帮助文本说明:

Then you can optionally provide the name of the specific file path(s) and topic names to trigger on.

  • To only trigger builds if the patch set contains files in a certain folder.
  • To only trigger builds if the change belongs to a topic.
点赞