TeamCity On-Premises 2024.03 Help

构建文件清理器 (Swabra)

Swabra 是一个捆绑的 TeamCity 插件,允许您在构建配置中添加 Swabra 构建功能。 这个构建功能使您能够执行以下操作:

  • 删除构建过程中生成的文件。 此功能在源代码检出完成后,会在检出目录中创建一个所有文件的列表。 在构建完成后(或下一次构建开始前),不在此列表上的文件将自动被删除。

  • 检测在构建过程中被修改或删除的文件。 此类文件会被报告到构建日志中(但是,已删除的文件不会被恢复)。 这使您能确保新的构建不会以被之前的构建删除或修改的某些源文件作为开始,并且在这种情况下启动一次干净的检出。

  • 在构建结束时,转储锁定目录的进程(需要 handle.exe)。

Swabra 将检出目录状态保存到缓存目录中的 <checkout-directory-name-hash>.快照 文件,使用的是 DiskDir 格式。 待清理的签出目录路径存储在 snapshot.map 文件中。 快照存储了关于现有文件、它们最后的修改信息和大小的信息。 此信息用于在构建完成(或即将开始新的构建)时确定变更。

配置 Swabra 选项

选项

描述

文件清理

选择您是否要进行构建文件清理,以及何时进行。

Clean checkout(干净签出)

请选择 无法恢复干净目录状态时强制进行清理检出 选项,以确保新的构建使用的源文件能与远程仓库中存储的文件完全匹配。 如果 Swabra 检测到签出目录中被修改或删除的文件,它将强制执行 干净的签出。 如果 Swabra 无法删除由之前的构建创建的任何残留文件,那么当前的构建将会失败。

如果禁用此选项,Swabra 在找到修改和删除的文件时会显示警告,但不会触发清理检出。

监控的路径

指定一组以换行符分隔的 +:路径 (包括)和 -:路径 (排除)规则,以指定 Swabra 应监视的文件和目录。 默认情况下,整个检出目录都会被监控。 路径可以是相对于 构建的检出目录 的,也可以是绝对的,并且可以包含 Ant 式的通配符。 如果没有指定 +:-: 前缀,规则将被视为“包含”。

规则应根据其明确性进行排列:指向目录并使用通配符的不太具体的规则应置于指向单个文件的更具针对性的规则之上。 第一条规则应始终指向一个目录。

Swabra 是 区分大小写的。

示例:

  • -:*/dir/* 排除所有 dir 目录及其内容

  • -:some/dir, +:some/dir/inner 排除了 some/dir 目录及其所有内容,除了 内部 子目录及其内容

  • +:./*file.txt 只将构建检出目录中的指定文件包含到监控中。

  • -:file.txt 从构建检出目录中排除指定的文件,不进行监控

锁定进程

选择 Swabra 是否应搜索锁定检出目录文件的进程,以及应如何处理这些进程。 请注意,Swabra 需要在代理上安装 handle.exe 来检测此类进程。

详细输出

选中此选项以启用向构建日志的详细日志记录。

默认排除路径

如果构建使用了代理检出,Swabra 将忽略所有 .svn.git.hgCVS 目录及其内容。 要禁用此行为,请指定一个空的 swabra.default.rules 配置参数。

安装 Handle

您可以从 管理员 | 工具 页面安装 handle.exe
点击 安装工具 按钮并从工具列表中选择 Sysinternals handle.exe
指定您是想下载 handle.exe 的最新版本,还是手动上传它并在本地机器上选择路径,然后点击 添加。 在 TeamCity 服务器下载或上传 handle.exe 后,它会在计划升级期间将此工具发送到 Windows 代理。

请注意,运行 handle.exe 需要构建代理用户的管理员权限

调试选项

通常,文件收集后会删除快照文件。 将 swabra.preserve.snapshot 系统属性设置为保留快照以用于调试目的。

Clean Checkout(干净签出)

请注意,Swabra 有时可能会导致 clean checkout 来恢复干净的检出目录状态。
为了避免不必要的频繁 clean checkout,始终针对在同一检出目录中工作的构建配置设置相同的 Swabra 构建功能。
如果为它们配置了相同的自定义检出目录路径或相同的版本控制设置,则构建配置在同一检出目录中工作。

最后修改日期: 16日 7月 2024年