有没有办法让 TeamCity 构建的工件引用(但不复制)作为另一个 TeamCity 构建的依赖项?
一些背景:我一直在尝试减少几个 TeamCity 配置中的构建时间。这是一个依赖于多个第 3 方库的 C++ 程序,我们的系统管理员一直不愿意将其安装在构建机器上。
我们的第一次运行将库压缩并解压缩/编译为配置中的构建步骤。这需要一段时间,因此系统管理员建议将第 3 方库解压缩/编译移动到单独的配置中,并将该构建的工件设置为我试图加速的构建的依赖项。
然而,在此构建配置下情况更糟。扩展/编译的第 3 方库(超过 1GB)的大小实际上使原始配置的速度提高了 10 多分钟。如果有一种方法可以只引用工件目录而无需复制内容,那就太棒了。
最佳答案
不要使用人工制品依赖。
而是创建两个或多个构建配置(一个用于您的主应用程序,一个或多个用于第 3 方库)然后创建 snapshot dependencies在它们之间,将其配置为在同一代理上运行构建。
这样做将确保您的第 3 方库中的二进制文件在本地文件系统上始终可用并且始终是最新的(但无需不断重建 - 假设没有源更改)。
您应该能够在 checkout directory 中轻松找到第 3 方二进制文件.
人工制品缓慢的原因是它们被上传到中央中央服务器,然后由代理下载。显然不适合 1GB 的第 3 方库。
关于c++ - 没有复制文件的 TeamCity 依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450799/