【问题标题】:How to build the new branch pushed to github using Jenkins CI?如何使用 Jenkins CI 构建推送到 github 的新分支?
【发布时间】:2011-12-24 10:13:11
【问题描述】:

我已经为 rails3 应用设置了 Jenkins 来构建规范。 可以通过 google 找到很多关于如何在 github push 上设置构建触发器的帖子。

但我想要的是构建推送到 Github 的新远程分支。 例如

我有一个回购origin/master。我克隆了 repo,创建了一个新分支,做了一些提交并将该分支推送到源 git push -u origin new_branch

现在我希望 Jenkins 在 origin 上构建这个新推送的分支。

如果构建成功,Jenkins 会自动将其合并到origin/master

Jenkins 插件有 github、git 插件。但它需要输入分支名称。相反,我想动态构建 new_branch。

我该如何设置这样的流程?

【问题讨论】:

标签: jenkins githooks


【解决方案1】:

如果我没记错分支名称不是必填项。您需要对其进行测试,但我认为如果您不填写它,Jenkins 会测试 repo 中的所有新提交,无论哪个分支受到影响。

但我建议您不要自动合并。你不想那样,相信我。 :-)

【讨论】:

  • 那么如果它已经通过了构建测试,那么合并到master有什么问题?
  • 问题是即使测试失败,构建后操作也会始终运行。并且 Jenkins 目前没有 git 的合并返回选项,因此您需要在构建后操作时从 shell 脚本运行它。
  • 不确定您使用的是哪个版本的 Post-Build,但我有一个选项可以在构建稳定时触发。我使用“Trigger Parameterized Build”插件,它具有作为常规 Trigger Build 插件的功能的超集。
  • 因此,如果您使用 -e 执行 shell 脚本,那么它将在测试失败时立即退出,并将您的整个构建设置为失败。
  • @Jordan 是的,如果您运行 shell 脚本。但这并不总是正确的
【解决方案2】:

似乎仅使用 github 和 gitgub 参数插件无法做到这一点。如果你在 Branch 中指定 branch_regex*** 来构建,Jenkins 总是在它看到的一堆分支中构建最新的提交。必须指定一个分支,以便 Jenkins 在该分支的最新提交上构建。我也看到了Multi Branch Pipeline 的一些答案,但不确定如何以这种方式部署。根本没有具体的说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2012-08-30
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2019-08-02
    相关资源
    最近更新 更多