【问题标题】:How to make Jenkins execute job only for the files that triggered build?如何让 Jenkins 只为触发构建的文件执行作业?
【发布时间】:2018-02-09 13:17:06
【问题描述】:

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

如果只有一个触发构建的提交,我可以轻松地从 svn 日志中获取答案。但是,如果有未知数量的提交导致我的 Jenkins 工作开始,我就有麻烦了。

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

【问题讨论】:

    标签: jenkins svn


    【解决方案1】:

    一次推送的多个提交也可以执行脚本。所以我认为你已经有麻烦了。因此,请在作业的工作区中维护一个文件,以便对于最后的每个构建,它将保存其commit id。在您的脚本中,现在检查从该提交到当前 (HEAD) 的差异,并根据您的约束检查文件中的更改。如果满足所有条件,现在运行你的工作。希望这会有所帮助。

    【讨论】:

    【解决方案2】:

    我认为这可能已修复,但以防万一,Jenkins 还提供了“Last Changes 插件”。

    https://github.com/jenkinsci/last-changes-plugin

    这会在该环境中的内容与即将推送的内容之间产生差异,并为您提供结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多