根据TeamCity中的父配置查找所有构建配置?

时间:2011-08-11 07:32:19

标签: dependencies continuous-integration teamcity dependency-management

在(仍然没有答案)问题what the preferred way for a big continuous integrations setup in TeamCity might be之后的几天里,我们一直在设置很多快照依赖项。

现在,您有配置A,B,C,D和E的图像,这取决于配置Z.三个月过去了。

现在假设您要从配置Z切换到X,可能是因为它是您在不同构建代理上测试了许多不同设置的配置。而你想推出这些变化。并且您不希望为开发人员强制执行CI停机时间,因为您手动复制已经使用配置X成功测试的配置设置。

因此,要将依赖关系配置Z切换到不同的配置X并将所有相关配置切换到此新配置:您如何知道哪些配置依赖于Z?

谢谢 - Stefan

1 个答案:

答案 0 :(得分:1)

虽然TeamCity在每个构建的基础上有很好的视图跟踪依赖关系,但我不知道UI中的一个页面允许您查看依赖于给定“父”配置的构建配置列表。 您当然可以查看每个单独的配置以查找它,但这在您的大型部署中可能不可行。

如果您想在一个地方或以编程方式访问此信息,TeamCity会将其存储在< TEAMCITY-DATA-DIR> \ config中的 project-config.xml 文件中\< PROJECT-名称> 。目录

<project id="project1">
  <build-type id="bt1" name="Parent">
    ...
  </build-type>

  <build-type id="bt2" name="Child 1">
    ...
    <settings>
      <dependencies>
          <depend-on sourceBuildTypeId="bt1">
          ...
          </depend-on>
      </dependencies>
    </settings>
  </build-type>

  <build-type id="bt3" name="Child 2">
    ...
    <settings>
      <dependencies>
          <depend-on sourceBuildTypeId="bt1">
          ...
          </depend-on>
      </dependencies>
    </settings>
  </build-type>
</project>

在上面的示例中,您可以查找具有 sourceBuildTypeId 设置/依赖关系/依赖节点的任何构建类型 >匹配您的父配置 ID 。 即使您的依赖项跨越多个项目,此方法仍应有效,因为构建类型ID在TeamCity安装中是唯一的。