如何限制 TeamCity 构建的工件?

为了节省磁盘空间并避免性能问题,您可以限制存储在特定 TeamCity 构建和项目中的工件。 主要有三种方式:

  • 将多个工件文件打包到一个归档中。
  • 限制工件文件的大小和每个构建的工件数量。
  • 配置多余文件的自动清理。

将构建工件打包到归档中

TeamCity 可以在发布之前从构建工件自动创建归档。 要配置此行为,请打开构建配置的 General Settings(常规设置)并按以下格式指定工件路径(换行符或逗号分隔的模式):

[+:|-:]source => target_archive.*,其中:

  • [+:|-:]source – 要作为构建工件发布 (+:) 或从发布中排除 (-:) 的文件或目录的路径。 虽然也支持绝对路径,但建议使用相对于构建签出目录的源路径。
  • target_archive.* – TeamCity 创建来打包工件的归档路径,其中 .* 是归档扩展名。 支持的归档类型为 zip7zipjartartar.gz。 目标路径不能是绝对的,应相对于构建签出目录指定它。

例如,要将 directory_name 目录中存储的所有文件和子目录打包到 archive_name ZIP 归档中,请在 Artifact paths(工件路径)字段中输入以下内容:

directory_name => archive_name.zip

有关如何配置工件路径的更多详细信息和示例,请参阅此文档文章

限制工件文件的大小和数量

您可以在 TeamCity 服务器上全局指定构建工件文件的最大允许大小和每个构建的最大工件数。 为此,请使用 Administration | Global Settings(管理 | 全局设置)的 Build Settings(构建设置)部分中的相应设置。

定义清理规则

您可以指示 TeamCity 自动删除特定构建配置的旧工件和多余工件。 为此,请在 Project Settings | Clean-up Rules(项目设置 | 清理规则)中配置清理规则

  • 点击要更改的构建配置下的 Base rule(基本规则)行。 如果基本规则行被隐藏,请点击 Show 1 inherited rule(显示 1 条继承规则)(默认情况下,每个构建配置都从其上级项目继承一条基本规则)。
  • 在弹出对话框的 Clean artifacts(清理工件)部分中,选择 Custom policy(自定义策略)选项并指定构建工件的移除规则。 例如:
    • 移除所有早于第 n 个成功构建的构建的工件。
    • 移除自上次成功构建以来超过 n 天的所有构建的工件。
    • 根据指定模式按名称移除工件。

      Artifact patterns(工件模式)字段中,为工件名称输入换行符分隔的模式,在清理中添加或排除匹配的工件。 例如:

      • +:**/file*.* – 移除名称中包含“file”的工件。
      • -:**/file*.jar – 从清理中排除名称中带有“file”的 .jar 工件。
  • 在基本规则对话框的 Dependencies(依赖项)部分中,您可以指定是删除还是保留属于链的依赖项构建的工件