Teamcity 在启用清理的情况下构建填充磁盘空间

问题描述 投票:0回答:2

我在 Windows 服务器上运行了 teamcity 安装

我有一个构建过程,即构建一个 .net 应用程序。作为构建过程的一部分,它运行 gulp 任务,并安装各种节点模块来构建所有 sass 和 js 文件。

在我的 teamcity 解决方案中,我有“所有内容”的清理规则,该规则要早于第四次成功构建

但是 teamcity 似乎并没有清理所有内容,因为我的工件文件夹很大(并导致服务器磁盘空间不足)

现在我相信问题是因为 gulp 任务之一和所有的 node_modules 正在安装。因为嵌套节点如何安装所有内容。

在 Windows 计算机上,在大多数情况下,您不能直接删除 node_modules 文件夹,因为您会收到路径长度超过 256 个字符的警告,并且必须使用 robocopy 技巧在空文件夹中进行复制来删除 node_modules 文件夹

其他人做了什么来解决工件未正确清理的问题?

我正在考虑另一个步骤,即在处理 gulp 任务的步骤之后从工件文件夹中删除 node_modules 文件夹,但一旦它指向当前构建的工件文件夹,我就无法在 teamcity 参数列表中看到它。

teamcity node-modules teamcity-9.0
2个回答
1
投票

如果构建应通过服务器清理删除,但您仍然在 TeamCity UI 中看到构建并且它们未固定,最常见的原因是有其他构建快照或工件,具体取决于相关构建。检查构建的“依赖项”选项卡和相关的 TeamCity 设置


0
投票

一个老问题,但我将其发布为答案,因为我在尝试解决问题时遇到了此问答,而这个答案可以节省我的时间。

TeamCity 的清理规则及其文档中都存在错误,尤其是历史版本。

特别是,强制清理快照依赖构建的行为在早期版本(大约 2021.2 之前)中无法正常工作,并且相应文档中没有提及这一点。

这意味着,如果您的构建配置是另一个构建的快照依赖项,则在完全删除其“依赖”构建之前,您可能无法清理第一个配置中的构建。

对于(例如)单元测试构建,日志和 .NET 覆盖率报告(存储为隐藏的工件)可以轻松扩展到数十 MB,从而严重占用繁忙服务器的硬盘空间。

有关完整详细信息以及 JetBrains 错误跟踪器报告的链接,请参阅 JetBrains TeamCity 论坛上的此问答:

https://teamcity-support.jetbrains.com/hc/en-us/community/posts/17232521189394-Hidden-artifacts-not-being-cleaned-up?page=1#community_comment_17243897731218

我们发现的唯一令人满意的解决方法是在有问题的机器上编写并执行完全手动的清理脚本。我们使用Python(根据要求提供清理脚本),但显然存在许多替代方案。

© www.soinside.com 2019 - 2024. All rights reserved.