jenkins子模块构建于git commit上

时间:2016-04-13 09:46:30

标签: git jenkins gradle continuous-integration

我们在一个git存储库中有一个带有gradle子模块的项目。

  

|项目
  | -submodule1
  | -submodule1-API
  | -submodule2
  | -submodule2-API
  | -submodule3
  | -submodule3-API

在提交到这个git存储库时,Jenkins启动了作业(编译,测试,SCA)(我们使用git web hooks。参见https://stackoverflow.com/a/12794930/1623597)。我们为每个子模块(子模块1,子模块2等)都有工作。

问题是詹金斯开始了所有约10个工作。

  1. 只有在某些特定类中有更改时才能触发作业吗?(如project / submodule2 / src / main / java / com / test / Hello.java)< / p>

  2. 是否有可能在git hook中有一些变量?这只会触发jenkins中的特定构建?

  3. 如果我们对特定目录进行了更改,jenkins是否会有触发构建的插件?

1 个答案:

答案 0 :(得分:1)

Jenkins Git插件允许您在作业的配置中定义它。在Source Code Management / Git / Additional Behaviours中选择一个名为Polling ignore commits in certain paths的选项。

  

如果设置,并且Jenkins设置为轮询更改,Jenkins将付费   注意包含和/或排除文件和/或文件夹时   确定是否需要触发构建。使用此行为   将阻止更快的git ls-remote轮询机制,强制   轮询需要工作空间因此有时会触发不需要的工作空间   构建,就好像您已使用工作区选择了强制轮询   扩展也是如此。

然后,您将能够使用正则表达式配置包含或排除您从中或不想触发构建的区域。这样您就可以限制轮询策略。

有关详细信息,请参阅内置帮助(?)。