如何让Jenkins仅针对触发构建的文件执行作业?

时间:2018-02-09 13:17:06

标签: jenkins svn

我有一个svn回购和一些Jenkins的工作。使用Jenkins svn插件的“包含区域”功能,我可以配置Jenkins来轮询某些文件夹或文件类型的更改。但这是为了触发这项工作。当实际作业开始执行时,我如何知道其更改触发构建的文件是什么?

如果只有一个提交触发构建,我可以轻松地从shell脚本中的svn log中解答答案。但如果有一个未知数量的提交导致我的詹金斯工作开始,我就麻烦了。

我问这个是因为我希望我的Jenkins工作只针对那些更改触发构建的文件运行某些分析。

2 个答案:

答案 0 :(得分:0)

同时推送多个提交也可以执行脚本。所以我觉得你已经遇到麻烦了。因此,请在作业工作区中维护一个文件,以便在最后的每个构建中保存其commit id。在您的脚本中,现在检查从该提交到当前(HEAD)diff并根据您的约束检查文件中的更改。如果符合所有条件,现在就开始工作。希望这会有所帮助。

答案 1 :(得分:0)

我认为这可能是固定的,但为了以防万一,还有" Last Changes插件"来自詹金斯。

picture here

这使得该环境中的内容与即将推出的内容之间存在差异,并为您提供结果。