server/Swabra.xml (100 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<dsl-extension kind="buildFeature" type="swabra" generateDslJar="true">
<class name="Swabra">
<description>
A [build feature](https://www.jetbrains.com/help/teamcity/?Build+Files+Cleaner+(Swabra)) cleaning files and processes created during a build
</description>
</class>
<function name="swabra">
<description>
Adds a [build feature](https://www.jetbrains.com/help/teamcity/?Build+Files+Cleaner+(Swabra)) cleaning files and processes created during a build
@see Swabra
</description>
</function>
<params>
<param name="swabra.enabled" dslName="filesCleanup" type="FilesCleanup">
<description>
A files clean-up mode to use
@see FilesCleanup
</description>
</param>
<param name="swabra.strict" dslName="forceCleanCheckout" type="boolean" trueValue="true" falseValue="">
<description>
Force [clean checkout](https://www.jetbrains.com/help/teamcity/?Clean+Checkout) if cannot restore clean directory state
</description>
</param>
<param name="swabra.processes" dslName="lockingProcesses" type="LockingProcessPolicy">
<description>
Whether to inspect the checkout directory for processes locking files in this directory, and what to do with such processes
@see LockingProcessPolicy
</description>
</param>
<param name="swabra.verbose" dslName="verbose" type="boolean" trueValue="true" falseValue="">
<description>
Enables detailed logging to build log
</description>
</param>
<param name="swabra.rules" dslName="paths" description="Paths to monitor">
<description>
A newline-separated set of +|-:path rules to define what files and directories should be cleaned
</description>
</param>
</params>
<types>
<enum name="FilesCleanup">
<description>
Files clean-up mode
</description>
<option name="DISABLED" value="">
<description>
Don't cleanup files
</description>
</option>
<option name="BEFORE_BUILD" value="swabra.before.build">
<description>
Cleanup files before build start
</description>
</option>
<option name="AFTER_BUILD" value="swabra.after.build">
<description>
Cleanup files after build finish
</description>
</option>
</enum>
<enum name="LockingProcessPolicy">
<description>
Specifies how to handle processes locking some files
</description>
<option name="DISABLED" value="">
<description>
Don't detect locking processes
</description>
</option>
<option name="REPORT" value="report">
<description>
Report detected locking processes
</description>
</option>
<option name="KILL" value="kill">
<description>
Kill detected locking processes
</description>
</option>
</enum>
</types>
<examples>
<example>
<description>
Enables cleanup of the build files on the agent before the first build step starts.
Also detects all the processes locking the files under the build checkout directory (Windows only), and kills them.
If build files cleaning fails for some reason, then forces the agent to perform clean checkout.
</description>
<code>
swabra {
forceCleanCheckout = true
lockingProcesses = Swabra.LockingProcessPolicy.KILL
}
</code>
</example>
</examples>
</dsl-extension>