RTC / Jazz中的顺序构建

时间:2014-09-15 04:48:25

标签: build rtc jazz

我们有一些依赖构建,我想首先启动它们...(谈论RTC / Jazz源代码控制中使用的RTC / Jazz构建定义 - 我们使用来自RTC / Jazz的构建引擎)

  1. 构建框架
  2. 构建服务器[取决于1。]
  3. 构建(开始)单元测试服务器[取决于2.]
  4. 构建客户端[取决于1。]
  5. 构建(开始)单元测试客户端[取决于4.。]
  6. 构建(生成)全面报告[取决于1.-5。]
  7. 构建(发布)如果一切正常...... [取决于6.如果确定]
  8. 有没有办法将序列添加到不同的构建定义中?构建在两个不同的构建引擎上执行,甚至在不同的构建服务器上。现在我必须复制结果并手动发布...

    一个重要的注意事项:这些是夜间构建,将当天的所有工作集中在一起......它们通过每个构建定义中的“计划选项”触发。但想想当一个构建尚未准备好而另一个构建尚未开始时会发生什么? (这已经发生了,我想进一步避免它)......

    处理此问题的正确方法是什么? (也许我使用的搜索选项错误但谷歌和Stackoverflow没有结果)

    enter image description here

2 个答案:

答案 0 :(得分:2)

RTC中的构建调度程序管理与TeamCity或Jenkins一样完整(实际上,RTC4 +允许将该作业调度功能委派给Jenkins)

但是如果你想在构建定义之间引入一个序列,你可以看看" How to keep your streams flowing smoothly in Rational Team Concert 3.0.1"中介绍的构建后交付。
这个想法是,如果构建成功,则触发传递到另一个流(post-build deliver step) 如果该另一个流由另一个作业监视,则该作业只有在前一个作业成功时才会启动:序列已实现。

这似乎比adding pre/post-build extensions points简单。

请注意构建后步骤currently don't get run when a build is invoked by the Team Concert Plugin for Jenkins。请参阅WI 277270

答案 1 :(得分:1)

您可以在每次成功构建后向jour jazz服务器发送帖子请求,例如: 本地主机:/jazz/service/com.ibm.team.build.internal.common.ITeamBuildRequestService

<request>
<method>requestBuild2</method>
<interface>com.ibm.team.build.internal.common.ITeamBuildRequestService</interface>
<parameters xsi:type="com.ibm.team.repository.common.services:ComplexDataArg">
    <type>COMPLEX</type>
    <value xsi:type="build:BuildRequestParams">
        <allowDuplicateRequests>true</allowDuplicateRequests>
        <personalBuild>false</personalBuild>
        <buildDefinition  itemId="YOUR_BUILD_DEFINITION_NAME" />
    </value>
</parameters>
</request>