1

我们有一些依赖的构建,毕竟我想启动它们......(谈到 RTC/Jazz 构建定义,它们用于 RTC/Jazz 源代码控制 - 我们使用 RTC/Jazz 的构建引擎)

  1. 构建框架
  2. 构建服务器 [取决于 1.]
  3. 构建(启动)单元测试服务器 [取决于 2.]
  4. 构建客户端 [取决于 1.]
  5. 构建(启动)单元测试客户端 [取决于 4.]
  6. 构建(生成)全面报告 [取决于 1.-5。]
  7. 如果一切正常,则构建(发布)... [取决于 6. 如果正常]

有没有办法将序列添加到不同的构建定义中?构建是在两个不同的构建引擎上执行的,它们甚至在不同的构建服务器上。现在我必须复制结果并手动发布...

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

处理这个问题的正确方法是什么?(也许我使用了错误的搜索选项,但在 google 和 Stackoverflow 中没有结果)

在此处输入图像描述

4

2 回答 2

2

RTC 中的构建调度器管理不如 TeamCity 或 Jenkins 完整(实际上,RTC4+ 允许将该作业调度功能委托给 Jenkins)

但是,如果您想在构建定义之间引入一个序列,您可以查看构建后交付,在“如何在 Rational Team Concert 3.0.1 中保持流顺畅流动”中进行了介绍。
这个想法是,如果构建成功,触发交付到另一个流(构建后交付步骤)。
如果另一个流被另一个作业监视,则该作业只有在前一个成功时才会启动:序列已实现。

这似乎比添加 pre/post-build 扩展点更简单。

请注意,当 Team Concert Plugin for Jenkins 调用构建时,构建后步骤当前不会运行。见WI 277270

于 2014-09-15T05:31:04.930 回答
1

您可以在每次成功构建后向 jazz 服务器发出 post 请求,例如:localhost:/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>
于 2014-09-15T06:20:33.273 回答