TeamCity
 
You are viewing the documentation for an earlier version of TeamCity.

Build Files Cleaner (Swabra)

Last modified: 20 April 2023

Bundled Swabra plugin allows to clean files created during the build. The files modified or deleted during the build are also reported in the build log (however they are not affected by the plugin). The plugin remembers the state of the file tree after the sources checkout and on next build start deletes all the newly added files. Swabra can also ensure clean checkout for directory and clean checkout at build start if there are any modified or deleted files in the checkout directory. Moreover, Swabra also gives the ability to dump processes which locked the checkout directory before build finish (requires DownloadingHandle)

Swabra can be added as a build feature to your build configuration regardless of what set of build steps you have. By configuring its options you can enable scanning checkout directory for newly created, modified and deleted files and enable file locking processes detection.

Checkout directory state is saved into a file in the caches directory named <checkout_directory_name_hash>.snapshot using DiskDir format. Checkout directory to snapshot name map is saved into snapshot.map file. The snapshot is used later (at the start of the next build) to determine which files and folders are newly created, modified or deleted. It is done by actual files' presence, last modification data and size comparison with corresponding records in the snapshot.

Configuring Swabra Options



Default excluded paths



If the build is set up to checkout on agent swabra by default ignores all .svn, .git, .hg, CVS folders and their content. To turn off this behaviour specify empty swabra.default.rules configuration parameter.

Downloading Handle



You can download handle.exe from the Administration | Server Configuration | Tools tab. Select Sysinternals handle.exe from the list of tools, specify URL for downloading handle.exe or download it manually and specify path on local machine, click Continue and TeamCity will automatically download or upload handle.exe and send to Windows agents.

handle.exe is present on agents only after the upgrade process.

You may also download handle.exe, extract it on agent and set up the handle.exe.path system property manually.

Please note that running handle.exe requires some additional permissions for the build agent user. For more details please read this thread.

Debug options



Generally snapshot file is deleted after files collection. Set swabra.preserve.snapshot system property to preserve snapshots for debug purposes.

Development links



Sources in JetBrains Subversion repository. Builds for TeamCity 5.x and Builds for TeamCity 5.0.x and Builds for TeamCity 4.5.x at JetBrains public TeamCity