使用jenkins进行发布管理。组件和项目

时间:2014-12-03 14:52:44

标签: svn jenkins build release-management

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

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

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

我正在寻找的是某种软件或插件组合,它允许我:

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

例如,现在我可能有三个组件/ jenkin工作:

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

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

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

这样当我用param:myEnvironment:

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我建议为您的组件创建正常的Jenkins Jobs。这些作业可以从scm,build,tag,commit单个组件中签出。

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

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

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

例如:我们有一个组件(dll),我们需要在RC文件中进行少量更改时构建30次。在这种情况下,我们使用一个作业来循环另一个参数化作业,该作业将从同一作业构建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。但我需要先复习一下,然后才能说出来。