我无法使用Git插件在Jenkins中使用“包含区域”功能。我希望只有在“他的”目录中发生更改时才能构建作业。示例:仅当GIT_ROOT/tools/mytool/
下有更改时,才应构建项目mytool。我在包含的区域字段中为正则表达式尝试了几种形式:
/tools/mytool/.*
tools/mytool/.*
^tools/mytool/.*
对于这些正则表达式中的任何一个,结果都是相同的:每次提交更改时都会构建mytool - 无论在何处。我也以同样的方式尝试了被排除的区域 - 也没有工作。我做错了什么?
答案 0 :(得分:5)
对我来说,它在作业配置中的“源代码管理 - 附加行为”下检查“使用工作区强制轮询”时开始工作。闻起来就像一个bug - 有几个关于git插件的包含/排除区域功能的公开。
编辑:更新jenkins和git插件后它停止了工作。原因可能是:https://issues.jenkins-ci.org/browse/JENKINS-20607
我正在考虑转向这种方法here
答案 1 :(得分:5)
我刚遇到这个问题,答案与其他答案略有不同。话虽这么说,解决方案在于问题本身。对我来说,我在"包含的地区"使用模式:
service/Search/AbstractSearchServices/master/**/*
我将模式更改为:
service/Search/AbstractSearchServices/master/.*
一旦我改变了这种模式,它对我来说非常有效。
答案 2 :(得分:0)
为其他访问此站点的人提供一条便条,因为他们像我一样遇到float
的问题:
我也遇到了路径模式included-regions
的问题,该路径模式不能用作tools/mytool/.*
。
原因是我确实在git scm设置中启用了included-region
选项。禁用该选项后,shallow clone
参数将按预期工作。
答案 3 :(得分:-1)
确保在Build Trigger Poll SCM下检查,或者你有其他方式让Jenkins知道有变化。
您目前只是定义了这些区域,但Jenkins仍然需要在更新之前提取更新。