我正在尝试使用jenkins加上任何其他(最好是免费的)解决方案来实现功能发布周期,以管理用不同技术编写的几个组件的构造,这些组件可以单独编译和发布,以生成输出项目
现在我们有一系列不同的组件,每个组件都定义为Jenkin Job,它生成该组件所需的所有文件。这些组件使用不同的技术编写,包括Maven项目,BPMS和.NET项目。
对于给定的版本,我们需要构建将要部署的每个组件,手动标记构建,然后将它们放在一起并进行部署。这意味着在每个部署中,我们需要手动处理并记住发布中涉及的每个组件的哪些组件和版本,并存在忘记包含给定组件的风险。
我正在寻找的是某种软件或插件组合,它允许我:
例如,现在我可能有三个组件/ jenkin工作:
我希望能够将给定项目定义为:
这样当我用param:myEnvironment:
构建Project1时理想情况下,将有一种简单的方法可视化所涉及的所有组件的依赖关系树。也就是说,很容易知道Project 1由Component1和Component2组成。
有什么建议吗?
答案 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。但我需要先复习一下,然后才能说出来。