如何在jenkins构建之前自动合并git分支

时间:2013-07-17 09:54:52

标签: jenkins

如何在jenkins构建之前自动合并git分支 我有2个版本,用于分支主机和生产

当我进行生产构建时,我想做git merge origin / master。

3 个答案:

答案 0 :(得分:17)

这是Jenkins最新的Git插件支持的。只需在作业配置中的Git高级设置下将“Checkout / merge to local branch”设置为“production”。然后将“要构建的分支”设置为master,或者将其留空以让Jenkins尝试合并并构建它找到生产的其他分支。它将为每个分支执行一次合并/构建。它还可以将合并的分支推回到它所从的源。

检查一下: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures

答案 1 :(得分:2)

您可以通过管道中的扩展块进行预合并(假设您已经配置了 checkout: [ $class: 'GIT_SCM' ]。)

[
        $class: "PreBuildMerge",
        options: [
            mergeTarget: "master",
            fastForwardMode: "FF",
            mergeRemote: "origin",
            mergeStrategy: "OURS"
        ]
]

答案 2 :(得分:1)

我发现至少在当前 Jenkins dragas 的解决方案上几乎是正确的。合并策略必须是他们的(或 RECURSIVE_THEIRS,因为插件不提供 THEIRS),因为插件检查 origin/master 并将分支合并到它上面,而不是将 origin/master 合并到分支上.

我还发现缺少一些上下文。并且合并命令需要设置电子邮件和用户名:

checkout(
    [
        $class: 'GitSCM',
        extensions: [
            [
                $class: "PreBuildMerge",
                options: [
                    mergeTarget: "master",
                    fastForwardMode: "FF",
                    mergeRemote: "origin",
                    mergeStrategy: "RECURSIVE_THEIRS"
                ],
            ],
            [
                $class: 'UserIdentity',
                email: 'user@company.com',
                name: 'user123'
            ],
        ],
    ]
)