gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:00:22 24 4
gpt4 key购买 nike

背景

我的 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 作业被定义为通过指定 Type Path 在所有分支上运行。带图案 ** .此配置会导致作业在每次审核时运行。

问题

这是我想要完成的:
  • 如果代码审查只包含对任何 manual_tests 所做的更改文件夹,我不想让 Jenkins Jobs 被触发。
  • 如果评论至少包含一个不是 manual_tests 的文件/文件夹, 触发作业

  • 我尝试添加 File Path带类型 RegExp图案为 (?!.*manual_tests.*).* ,但这并没有达到我的最终目标。我尝试了各种正则表达式模式,但始终没有达到最终目标。

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

    最佳答案

    使其工作的技巧是 COMMIT_MSG 文件也必须在正则表达式中省略。

    此错误报告描述了问题和解决方法:https://issues.jenkins-ci.org/browse/JENKINS-19891

    修复只是使用以下 RegExp 模式:

    ^((?!manual_tests|\/COMMIT_MSG).)*$

    关于jenkins - 如何配置 Jenkins Gerrit 触发事件以排除文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24194857/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com