使用轮询会忽略Jenkins中具有管道作业的某些路径中的提交选项

时间:2018-09-18 14:44:51

标签: git jenkins github

我已经设置了Jenkins管道作业,对于该作业,我只希望仅在对特定目录进行更改时才启动该作业。我在Included Regions的{​​{1}}中添加了以下内容:

Polling ignores commits in certain paths

这是GitHub中的目录,我希望它在进行更改后启动工作。回购中的所有其他内容都将被忽略。这是行不通的,因为它仍然从仓库中的任何地方获取更改。我已经在自由式工作中很好地工作了,所以这是管道工作的问题吗? TIA

3 个答案:

答案 0 :(得分:0)

使用声明式管道解决了相同的问题。问题是管道作业已缓存了先前的配置,并顽固地拒绝识别新的配置。

我们通过使用新配置从头开始创建新管道作业解决了这一问题;由于操作原因,无法选择重新启动Jenkins。请注意,通过复制以前的错误作业来创建新作业将无效

编辑:Jenkins重新启动对解决此错误没有帮助。因此,当前的肮脏解决方案是:

  • 每次更新路径限制时创建一个新的管道项目-不切实际
  • here中所述,
  • 其他行为extensions: [[$class: 'DisableRemotePoll']])下的使用工作区强制轮询中-带有自己的开销。

答案 1 :(得分:0)

为什么不将 when 块与内置条件更改集一起使用?

参考https://jenkins.io/doc/book/pipeline/syntax/寻找变更集

when { changeset "some_folder/some_file.js" }

只有在更改集中设置的文件已更改时,使用此条件才能运行您的阶段。

请告知。轮询后,它仍然会加速工作,但是由于存在何时,它不会继续。

答案 2 :(得分:0)

这可能与“轻量级结账”选项有关。我不记得它到底导致了什么问题,但我记得它导致了问题。所以,把它关掉,看看是否能解决你的问题。该选项位于管道作业配置页面的底部。