【问题标题】:Release management with jenkins. Components and Projects使用 jenkins 进行发布管理。组件和项目
【发布时间】:2014-12-03 14:52:43
【问题描述】:

我正在尝试使用 jenkins 以及任何其他(最好是免费的)解决方案来实现功能发布周期,以管理用不同技术编写的多个组件的构建,这些组件可以单独编译和发布,以生成输出项目.

现在我们有一系列不同的组件,每个组件都定义为一个 Jenkins Job,它生成该组件所需的所有文件。这些组件是用不同的技术编写的,包括 Maven 项目、BPMS 和 .NET 项目。

对于给定的版本,我们需要构建将要部署的每个组件,手动标记构建,然后将它们放在一起并部署。这意味着在每次部署中,我们需要手动处理和记住发布中涉及的组件以及每个组件的版本,这可能会导致忘记包含给定组件。

我正在寻找某种软件或插件组合,让我能够:

  • 将项目定义为由许多不同的组件和(可选)配置文件定义的。
  • 让 Jenkins 构建每个组件,同时保持单独构建每个组件的能力。这意味着在作业上触发构建不会覆盖发布的结果。
  • 在构建项目标记后,SVN 中涉及的每个组件都将构建每个组件的结果,并在特定于该构建的单个位置进行构建。

例如,现在我可能有三个组件/詹金作业称为:

  • 组件 1
  • 组件 2
  • 组件 3

并且我希望能够将给定项目定义为:

  • 项目 1
    • 组件 1
    • 组件 2
    • ConfigFile.xxx

这样当我使用参数构建 Project1 时:myEnvironment:

  • 组件 1 和组件 2 正在构建
  • 组件的输出被输出到某些 myEnvironment/Component1 和 myEnvironment/Component2
  • ConfigFile.xxx 被复制到文件夹/
  • 用于构建的所有文件都被标记

理想情况下,将有一种简单的方法来可视化所有涉及的组件的依赖关系树。也就是说,很容易知道Project 1是由Component1和Component2组成的。

有什么建议吗?

【问题讨论】:

    标签: svn jenkins build release-management


    【解决方案1】:

    我建议为您的组件创建正常的 Jenkins 作业。这些作业可以从 scm 签出、构建、标记、提交单个组件。

    要在流程或流程中连接此构建,就像在 CI 上下文中经常调用的那样,您可以使用将控制您的组件作业的 Jinkins 作业。我们使用 Cloudbee 的流插件:

    https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

    “此插件允许使用专用 DSL 管理 Jenkins 作业编排,从作业中提取流程逻辑。”

    例如:我们有一个组件 (dll),我们需要构建 30 次,并在 RC 文件中稍作改动。在这种情况下,我们使用一个作业循环另一个参数化作业,该作业将从同一个作业构建 30 个不同的组件。

    如果你想可视化构建流程,http://startflowing.net (FLOW) 是一种 Jenkins 插件,也是一个集成 Jenkins 的流程设计器。 FLOW 看起来很棒,和我想要的完全一样,但不幸的是,集成现有的 Jenkins 实例并不容易,而且它不像我想象的那么灵活。还有许多其他插件不支持/可视化,例如非常灵活的 Cloudbee 的流插件。

    可视化 Jenkins 作业的替代方法是 https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin。但这不支持 Cloudbee 的流插件。否则它将是一个很好的插件来可视化我的构建管道。

    至少我在这一秒发现了一个全新的插件:https://wiki.jenkins-ci.org/display/JENKINS/Workflow+Plugin。但我需要先对其进行审查,然后才能发表任何评论。

    【讨论】:

    • 如您所见,没有完美的解决方案。如果您发现了一些有趣的东西,请告诉我。既然我们做/想做同样的事情,也许保持联系是个好主意。
    猜你喜欢
    • 2020-03-28
    • 2011-03-15
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2010-12-09
    • 1970-01-01
    相关资源
    最近更新 更多