如何仅针对项目的某个部分构建Gerrit Trigger

时间:2014-05-06 01:32:23

标签: maven jenkins gerrit

我正在使用与git和gerrit触发器集成的Jenkins。

我管理着一个巨大的回购,它带来了大量的提交。所以我对在每次推送上运行整个项目的完整构建不感兴趣。 这里的想法是构建特定的项目.pom文件,其中有代码更改。

例如:

    -"common" is a subdir with its own .pom 

    -"persistence" is a subdir with its own .pom. "persistence" depends on common dir.

因此,如果持久性目录有变化,我必须只构建持久性.pom文件,因为它将构建为依赖项。另一方面,如果有人改变共同的代码,jenkins就没有必要建立持久性。所以它会节省我的时间和资源。

所以这里的问题是我怎么能这样做? gerrit触发器是否对此有任何支持?

更新:在选择已更改的文件时,文件RegEx选项是指文件路径还是文件名?

而且,有没有办法,使用文件RegEx字段,表达类似构建“如果共同变化而不是持久性变化”?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用Dynamic Trigger Configuration?您定义了一个过滤器 - 作业应该从哪个更改开始。因此,您为每个构建创建作业,然后使用过滤器定义适当的gerrit触发器。 或者,如果您只想为每个构建使用一个作业 - 那么编写一个脚本,您可以使用git将determine更改为哪个文件,然后为其选择正确的项目文件。

更新:尝试使用新版本参数:GERRIT_TOPIC
因此,请使用正确的TOPIC名称推送您的更改,例如

git push origin HEAD:refs/for/master/topic_name 

其中topic_name可以是常见的,持久性的 可以使用git中的pre-push hook自动填充主题名称。

相关问题