Git Submodules + Jenkins Build Branch + Bitbucket

时间:2017-05-03 00:40:46

标签: git jenkins bitbucket git-submodules git-pull

有一个'git master project configuration' 含义:我有一个父回购(P)和几个(N = 5)子回购 儿童回购是git子模块。

我们使用feature / bugfix分支模型,即:开发人员首先创建一个功能分支并提交到该分支,并创建一个拉取请求来掌握。

在某些情况下,P,或C1,C2,...... C5

中的变化是100%自包含的

在其他情况下,该功能跨越模块,即:(C1和C3)需要更改 但其他情况可能是(P和C4)

我希望 系统*(bitbucket或jenkins):( 1)执行合并,创建“canidate-new-master”,如果成功 - 构建合并结果,如果合并结果是成功的 - 然后对于每个模块 - 如果该模块有引用该分支的拉取请求,则将该请求标记为“jenkins approved”。

CHECKOUT过程是这样的:

第1步:

如果更改(推送)仅在孩子中发生...切换到父母。 检查父项和所有子项(子模块)

第2步:

对于每个模块(parent,child1,child2,... childN) 如果BRANCH存在于该模块中 - 那么检查该分支 否则默认为MASTER。

我真的不想在所有子模块中复制分支名称。

问题:      jenkins git插件不会检查子模块中的正确分支,它只检查master。

建立过程:

在最顶层的项目(P,父项)中,我们有一个带有各种构建脚本的子目录,我们使用Jenkins的“多配置构建”,我们有配置名称,如:“pretty-check”,smoke-检查“,”合规 - 验证“,”klockwork“等......

这些构建中的每一个都需要位于一个独立且自包含的目录中。

当BUILD成功时 - 告诉bitbucket“Build Success”有效,这应该将pull请求标记为“jenkins批准”。

我所知道的不知道:

a)当有一个repo时,它似乎工作得很好,使用git子模块时它不起作用。

b)使用jenkins git模块创建多个REPOS不起作用 - 我最终得到的目录中的所有模块彼此平行(作为兄弟目录) - 相反:我们想要/需要子模块[ie:sub]目录]工作方法。

c)检查子模块时 - 我们似乎只获得主模式,而不是分支名称。

d)如果在C3(子/子模块3)中发生提交,我需要触发不在C3目录中的构建,而是在上述父模块的顶部。

git hook(bitbucket)正确地告诉Jenkins模块(C3)发生了变化,但是我们需要Jenkins将“map this”排序到Parent模块并遵循签出规则。

谷歌今天不是很有帮助。

0 个答案:

没有答案