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



我已经设置了一个 Jenkins 管道作业,为此我只想在对某个目录进行更改时才启动作业。我在Polling ignores commits in certain paths中添加了以下内容Included Regions

path/to/my/dir/.*

这是 GitHub 中的目录,我希望它在对其进行更改时启动作业。存储库中的其他所有内容都将被忽略。这是行不通的,因为它仍然从回购中的任何地方获取更改。我已经让它在自由式作业中正常工作,所以这是管道作业的问题吗?蒂亚

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

查找变更集 https://jenkins.io/doc/book/pipeline/syntax/引用

when { changeset "some_folder/some_file.js" }

使用此条件将仅在变更集中的文件集发生更改时运行阶段。

建议。当轮询时,它仍然会启动一个工作,但由于有一个时间它不会继续。

声明性管道面临同样的问题。问题是管道作业缓存了以前的配置,并顽固地拒绝识别新配置。

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

编辑:詹金斯重启对这个错误没有帮助。所以目前肮脏的解决方案是:

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

这可能与"轻量级结帐"选项有关。我不记得它到底导致了什么问题,但我记得它会导致问题。因此,将其关闭,看看是否可以解决您的问题。该选项位于管道作业的配置页底部。

最新更新