快照依赖关系 - 不要对依赖关系运行挂起的更改

时间:2012-04-02 19:21:41

标签: teamcity

假设我有三个构建配置

  1. 构建并运行测试
  2. QA Build
  3. 生产构建
  4. QA取决于构建和运行测试。生产取决于质量保证。

    正常的工作流程如下。

    1. 提交更改
    2. 构建和运行测试自动运行
    3. 手动运行QA Build。
    4. QA批准更改
    5. 手动运行生产构建。
    6. 这很有效。但是,我们假设在步骤3和5之间的某个时间进行了更改。因此,现在我有1个待更改的QA,有2个待处理生产(其中1个由QA批准)。

      如果我单击TeamCity中的运行按钮,它将运行QA Build的挂起更改以及生产构建的两个更改。

      如果我点击运行按钮上的“...”,我可以点击“更改”并选择要包含在此版本中的特定修订。但是,这并没有告诉我目前QA中的哪个版本。所以现在我必须检查QA批准了哪个版本,并确保选择正确的版本。

      是否有类似Artifact Dependencies的工作方式?在那我可以具体“最后完成”或“最后固定”。这将确保构建中不包含未经批准的更改。

1 个答案:

答案 0 :(得分:4)

在此特定情况下,您应该将snapshot dependency 2 定义为 1 ,并从 3 定义为 2 。当QA愿意测试由 1 制作的工件时,他们可以转到 1 "Build Chains"标签(如@neverov所提到的那样), 2 3 并从那里手动运行 2 3 。这确保了在所有链式步骤中使用相同的更改。

您还可以在这些配置之间定义artifact dependency(从 2 1 ,从 3 1 < / strong>)以便将 1 构建的二进制文件传递给 2 3 ,而无需重新创建它们。