有一个'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模块并遵循签出规则。
谷歌今天不是很有帮助。