v4.0.0 🚀
Over the past few months I've been rewriting this action with a brand new architecture that resolves some long standing issues. The new version of this library is heavily inspired by rsync
. rsync
is a popular application that must be run over a ssh
connection, it requires the rsync
binary be install on both the client and the sever. rsync
provides dozens of advanced arguments that can't be supported due to protocol limitations with ftp
. Version 4 attempts to emulate at a high level how rsync
syncs multiple folders, however operates over the constrained ftp
protocol.
Less overhead
Version 4 no longer uses docker and has faster startup times!
Improved Defaults
.git
and node_modules
are now ignored by default, allowing users to opt-in to their deployment instead.
Improved Error Handling
Errors are now less cryptic.
Local Testing
Testing actions in version 3 was difficult, often requiring devs to change a value and commit it without testing the change locally. You can now run test configurations using node, see readme for more info.
Minimize downtime
The deployment is now setup in a way that minimizes downtime. For example, new files can be uploaded, then existing files updated, and finally old files deleted.
Removed features 🗑️
sftp
support has been removed. In hindsight this never should have been added. Users with sftp
access should be using rsync
over ssh
. I will create a separate github action for rsync deployments (coming soon)