背景
我的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.