Customizations for file.Folder Deployments
Customize file.Folder
deployments to control how Deploy handles empty folders, performance optimization (isForceArchive
), legacy behavior, connection retry logic, and debug logging.
Deploy 25.3 introduces several important updates and enhancements to file.Folder
deployment behavior. The following sections outline these key changes, including new handling of empty folders and performance optimization options.
Empty Folder Handling
In Deploy 25.3, empty folders are now included in file.Folder deployments. Previously, empty folders were excluded from deployment packages.
Force Archive Configuration
The isForceArchive
configuration is primarily intended for troubleshooting technical issues with file.Folder deployments. Most users should keep the default value of true
for optimal performance.
Default Behavior:
isForceArchive
is set totrue
by default.- Enables enhanced performance for folder deployments.
- Hidden from the UI.
Switching to Legacy Behavior
If you encounter issues with file.Folder deployments and need to revert to the behavior from Deploy 25.1 and earlier versions, you can modify the isForceArchive
property.
To customize the isForceArchive
property, you need to define a type modification in your synthetic.xml
file:
<type-modification type="file.Folder">
<property name="isForceArchive" default="false" hidden="true" kind="boolean"
category="Tar copy strategy" description="Force Archive" required="false"/>
</type-modification>
When isForceArchive
is set to false
:
- Folder deployments performance degrades to pre-25.3 levels.
- New Tar copy strategy features (
stripComponents
andmembers
) remain available.
For detailed instructions on how to modify CI properties, see Tips and tricks for deployment packages.
Configuring Copy Strategy Using synthetic.xml
You can define the default copy strategy for file.Folder deployments at the infrastructure level using synthetic.xml
. This allows you to control which copy strategy (Tar, ZipUnix, ZipWindows) is used for deployments to different types of hosts.
The following examples show how to set the default copy strategy for various host types:
-
ZipUnix: Applied for deployments to
overthere.SshHost
<type-modification type="overthere.SshHost">
<!-- Override the default copy strategy to always be ZipUnix for all "Linux" hosts -->
<property name="copyStrategy" kind="enum" default="ZipUnix" enum-class="com.xebialabs.deployit.plugin.overthere.CopyStrategyName"/>
</type-modification> -
ZipWindows: Applied for deployments to
overthere.BaseSmbHost
<type-modification type="overthere.BaseSmbHost">
<!-- Override the default copy strategy to always be ZipWindows for all "Windows" hosts -->
<property name="copyStrategy" kind="enum" default="ZipWindows" enum-class="com.xebialabs.deployit.plugin.overthere.CopyStrategyName"/>
</type-modification> -
Tar: You can also set Tar as the default strategy for deployments to either host type:
-
To use Tar for deployments to Unix/Linux systems, set the following for
overthere.SshHost
:<type-modification type="overthere.SshHost">
<property name="copyStrategy" kind="enum" default="Tar" enum-class="com.xebialabs.deployit.plugin.overthere.CopyStrategyName"/>
</type-modification> -
To use Tar for deployments to Windows systems, set the following for
overthere.BaseSmbHost
:<type-modification type="overthere.BaseSmbHost">
<property name="copyStrategy" kind="enum" default="Tar" enum-class="com.xebialabs.deployit.plugin.overthere.CopyStrategyName"/>
</type-modification>
-
Ensure the required prerequisites are met for tar
or zip
on your target infrastructure for the selected copy strategy to function correctly.
For more details about Copy strategies and how to choose the right one for your environment, see Copy Strategies.
Retrying Connection Establishment
The parameter xl.task.step.on-copy-artifact.enable-retry
allows the file copy process to retry connection establishment automatically, helping to recover from issues such as temporary system unresponsiveness or network disconnections.
The default value is false
. If set to true
, the step will retry connection establishment based on the limits defined in xl.task.step.max-retry-number
and the delay specified in xl.task.step.retry-delay
.
Logging
Enable verbose logging to troubleshoot file.Folder
deployments. Set the logging level to DEBUG
for the following packages:
com.xebialabs.deployit.plugin.generic.step
com.xebialabs.deployit.io
com.xebialabs.deployit.io.copy
Edit conf/logback.xml
and add (or adjust) the relevant logger entries.
Example log output looks like this (with autodetect enabled, deploying to a Windows host):