当前位置: 首页 > 面试题库 >

当更改提交给子模块时,如何触发jenkins的构建?

寇照
2023-03-14
问题内容

我们有一个带有外部子模块的git存储库。子模块更改时,我们必须触发构建。您能否建议我们如何使用xtrigger插件轮询子模块上的更改。使用shell脚本或监视文件还是其他更好?

有关我们的构建流程的更多信息。第1步。使用子模块步骤2克隆根存储库。为每个子模块步骤#2.1(在子模块中)执行作业。切换到正确的分支(例如,主)步骤#2.1(在子模块中)。拉取子模块的最新资源

现在,如果有人提交到根存储库,jenkins将启动该应用程序的构建,但是如果有人提交到任何子模块存储库,jenkins将不启动任何内容

对于第二种情况,我们需要解决方案。在最佳情况下,应通过标准的詹金斯功能或开源插件来完成。


问题答案:

当git仓库有一个子模块时,它指向该子模块中的特定提交(例如commit
A)。因此,即使子模块发生更改并且现在已经提交了,B作为A顶级存储库的子项,仍然指向commit
A。您必须显式更新顶级存储库,以指向B子模块中的提交,该提交不会自动发生。

鉴于此,您问题的答案是,只需更新顶级存储库以指向新的commit即可B。这将导致您存储库中的更改,这将像通常那样触发Jenkins构建,这将从B子模块中获取新的提交。

-

给定额外的信息,我将添加一个监视子模块存储库的Jenkins作业。当子模块发生更改时,请执行您要进行的任何子模块特定测试,然后在构建后步骤触发主存储库作业。



 类似资料:
  • 我有一个子模块a,它不是一个独立的应用程序。它需要主应用程序才能工作。我想为创建一个CI构建,这样每当提交被推送到时,它就会触发一个具有主项目代码的构建。 我在詹金斯怎么做? 我需要做的是: 提交会触发生成 如何使用Jenkins和GIT做到这一点? 注意,我有多个子模块的项目。子模块A触发一个构建,该构建从A中提取最新的更改以及最新的主代码,并从其他子模块中提取更新。

  • 问题内容: 在将代码提交到SVN项目时,我需要设置哪些插件和插件功能才能使Jenkins作业触发构建? 我已经安装了标准的SVN插件以及SVN标记插件,但是我看不到任何允许触发器配置的新功能。 问题答案: 有两种解决方法: 由于它易于实施,因此我最初建议使用第一种方法。在构建过程中成熟之后,请切换到第二个。 轮询存储库以查看是否发生了更改。如果在同一轮询间隔内有两次提交,则可能“跳过”提交。 在此

  • 问题内容: 我在Jenkins中建立了一个大型Maven多模块构建。它是为增量构建而设置的。 触发后,它将解析所有POM并弄清楚需要构建什么。 当前已将其设置为触发SCM更改。 我想进行此构建,以便可以执行以下操作: 仍然手动启动它。当我这样做时,它的增量构建行为将像今天一样起作用。 从Subversion提交钩子触发构建 。我想知道,如果我通过出色的指令来设置提交挂钩的麻烦,那将不会导致构建过程

  • 问题内容: 我知道有很多类似的帖子,但是我还没有找到解决方案,其他帖子中提供的建议和解决方案也不太符合我所看到的。 该场景非常简单:我在Eclipse中有一个项目,并且当我将该项目中的更改签到Subversion服务器(即VisualSVN Server 2.5.3)时,我希望我们的Jenkins持续集成服务器(即Jenkins 1.546) )以获取此更改并开始新的构建。我不想从詹金斯投票。 我

  • 我正在努力在将提交添加到GitHub上的特定分支时触发Jenkins Pipeline作业。 我在詹金斯工作选项上没有看到合适的构建触发器,就像詹金斯自由式工作一样。 如何将Jenkins管道作业设置为在使用新提交更新分支时触发? 到目前为止,我还没有找到这个场景的明确答案,只有在提交到master时触发Jenkins管道作业,只有关于多分支作业的答案。 任何关于这个问题的帮助将不胜感激!

  • 问题内容: 我已经用gerrit触发器插件配置了jenkins,以验证我们推送到gerrit的每个提交。我希望此触发器将我的最新更改包含在原始回购中并进行构建。但是,它只是克隆回购项目并无需我的更改即可进行编译。 下面是我在詹金斯中的Gerrit触发器的配置设置。 以下是构建输出消息 在这里701a75ef38aa191ac1b806c48e6b3451671888f6是repo分支的HEAD,而