【问题标题】:Jenkins build history by branch viewJenkins 通过分支视图构建历史
【发布时间】:2014-09-24 21:24:05
【问题描述】:

我玩过 Circleci,我真正喜欢的一件事是,它们允许您选择项目的一个分支,然后查看该分支中发生的所有构建。我很想在我们的 Jenkins 服务器上实现它。有没有这样的配置或插件?

这是我正在谈论的内容的快速模型:

MyProject: 
  - master
  - branch1
     -> build1
     -> build2
     -> build3 
     -> ...
  - branch2

【问题讨论】:

    标签: linux jenkins continuous-integration hudson continuous-deployment


    【解决方案1】:

    您可以使用 Jenkins 完成大部分您想要的事情。 Git Plugin 确实允许您使用一个构建来构建存储库(或多个存储库)的所有(或部分)分支。您可以在 Git 插件配置中将“分支说明符”字段留空以构建所有分支,或者您可以指定像“*/feature/**”这样的模式来构建与该模式匹配的所有分支。

    然后安装Build Name Setter Plugin,然后在构建环境下的构建配置中选中“设置构建名称”旁边的框,并使用#${BUILD_NUMBER}: ${GIT_REVISION,length=8} (${GIT_BRANCH})作为构建名称。

    这将导致您的构建历史看起来像这样:

    #5: 2743f83d (master)
    #4: d0b4eada (feature/featureB)
    #3: 777e92c7 (feature/featureA)
    #2: 15b6d92b (master)
    #1: 6b625f7f (master)
    

    它不像您的模型那样分层,但非常接近它。

    【讨论】:

    • 我们也在尝试按分支组织构建历史视图,所以我很高兴看到这篇文章。这绝对是一个可以接受的解决方法,@Kyle。感谢您的发表!不幸的是,令牌宏存在一个问题,导致 GIT_variables 无法识别。我尝试了各种版本,但总是得到:Unrecognized macro 'GIT_BRANCH' in '${BUILD_NUMBER}: (${GIT_BRANCH})' 这是一个old issue,但看起来它仍然相关。我将尝试使用其他几个插件,我会告诉你我在哪里。
    • 解决方法是从环境中调用变量。例如,您可以使用(${ENV,var="GIT_BRANCH"}),而不是${GIT_BRANCH}。不幸的是,这不会让您使用参数来缩短长度,因此您可能不想使用 GIT_REVISION。
    • 不错@Kyle,这看起来不错。自从提出这个问题后,我就转向了 CircleCI,但你所描述的与我想要做的非常接近。
    【解决方案2】:

    Jenkins 的工作方式不同。您必须为每个分支创建一份工作。我的团队将项目名称与分支名称结合在一起,因此作业名称将类似于 my_project-mastermy_project-branch-1

    【讨论】:

    • 哎呀,这很痛苦,考虑到我们的各种项目有几十个,甚至几百个分支。感谢您为我确认。
    • 您希望您的 ci 引擎构建数百个分支?
    • 这不是真的。 Jenkins 的 Git 插件可以构建存储库的所有分支。请参阅我的答案以获取问题的解决方案。
    • @Kyle OP 没有说明任何关于 Git 的信息,所以我假设他想设置一个适用于任何源代码控制系统的 CI。有了这个假设,我的答案适用于 TFS、Git 等。它更灵活。
    • 自从他提到了依赖 GitHub 的 CircleCI,我认为很明显他正在为 Git 寻找解决方案。不管怎样,你说在 Jenkins 中“你必须为每个分支创建一个工作”,这是不准确的。您只需对非 git 存储库执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多