2014-12-03 92 views
0

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

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

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

什么我要找的是某种软件或插件的组合,让我:

  • 定义一个项目由多个不同的部件和可选的配置文件定义。
  • 让詹金斯构建每个组件,同时保持构建每个组件的能力。这意味着触发构建作业不会覆盖发布的结果。
  • 在构建项目标签之后,SVN中涉及的每个单一组件都将每个组件的结果构建到特定于该构建的单个位置。

例如,现在我可以有三个组件/名为詹工作:

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

而且我想成为能够将给定的项目定义为:

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

这样,当我建立PROJECT1与PARAM:myEnvironment:

  • 的Component1和组件2的版本为
  • 输出的分量被输出到一些myEnvironment /的Component1和myEnvironment/COMPONENT2
  • ConfigFile.xxx被复制到文件夹/
  • 用于构建所有的文件被标记

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

有什么建议吗?

回答

1

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

要连接此构建流程或流程(如在CI上下文中经常调用的那样),可以使用Jinkins作业来控制组件作业。我们使用Cloudbee的流程插件:“此插件允许使用专用DSL,提取工作流逻辑管理詹金斯的工作编排”

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

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

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

另一种可视化Jenkins Jobs的方法是https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin。但是这不支持Cloudbee的流量插件。否则,它将成为可视化我的构建管道的一个不错的插件。

至少有一个全新的插件,我发现在这第二个:https://wiki.jenkins-ci.org/display/JENKINS/Workflow+Plugin。但是在我能说任何事之前,我需要回顾一下。

+0

正如你所看到的,没有完美的解决方案。如果您发现有趣的事,请告诉我。既然我们做/想做同样的事情,或许最好保持联系。 – LucasF 2014-12-03 19:28:19