- Added documentation generation from recipes.
- Added support for
ask()
functions in parallel mode. - Added support for
sudo
commands. - Added
dep status
command which shows currently deployed revisions. - Added
dep hosts
command to show hosts info in json format. - Added
dep tree
command to show task configuration. - Added
--plan
option to show execution plan, which tasks on which hosts. - Added
dep push
command to quickly push local changes to remote hosts. - Added yaml recipe syntax.
- Added dotenv support on remote hosts.
- Added labels and selectors support.
- Added support for placeholders in
run()
func. - Added support for secret passing in
run()
func without outputting to logs. - Added docker-based E2E testing environment. #2197
- Added support for PHP8.
- Added slack_channel option to Slack recipe.
- Chatwork contrib recipe.
- Added
release_or_current_path
option that fallbacks to thecurrent_path
when therelease_path
does not exist. #2486 - Added
contrib/php-fpm.php
recipe that provides a task to reload PHP-fpm. #2487 - Added tasks
artisan:key:generate
andartisan:passport:keys
to the Laravel recipe. - Added the following artisan tasks:
artisan:route:clear
,artisan:route:list
,artisan:horizon
,artisan:horizon:clear
,artisan:horizon:continue
,artisan:horizon:list
,artisan:horizon:pause
,artisan:horizon:purge
,artisan:horizon:status
,artisan:event:list
,artisan:queue:failed
,artisan:queue:flushed
. #2488 - Isolated console application runner for E2E tests.
- Support for code coverage in E2E tests.
- Webpack-encore contrib recipe.
- Recipe for Statamic.
- Refactored executor engine, up to 2x faster than before.
- Refactored
common.php
recipe to support new frameworks. - Refactored bash/zsh autocomplete to support hosts.
- Docs rewritten to be more clean, easy to use and understandable.
- Better parallel execution support, configurable per task.
- Refactored
dep init
command. - Normalize shopware recipe (require common.php).
- Removed the
min
andmax
constraints on theartisan:optimize
andartisan:optimize:clear
tasks. #2488 - Excluded the
shared_files
,shared_dirs
andwritable_dirs
configs from thedeploy.yaml
default template unless thecommon
template was chosen. - The way
deploy:update_code
fetched the GIT remote URL from the config.
- Lots, and lots of long-standing bugs.
- Shopware recipe plugin active/update.
- Fixed incorrect plugin:list parsing (remove duplicate version column). Invoke nested sw:plugin:refresh task instead of redefining it, so that it actually runs.
- Shopware activates/runs migration in order (respects dependencies in composer.json). #2423 #2425
- Boolean options should not go through the
self::escape
function. #2392 - Check if shared file exists before touching it (and fail because no write permission). #2393
- Fixed "dep run" suggestion in ACL error message. #2501
- TypeError, port is int on escapeshellarg. #2503
- .env.local.php in Symfony recipe. #2506
- Fixed regex identifying "cd" commands in YAML scripts. The regex was not taking into account that multiple commands can be executed within the same line — e.g. "cd {{release_path}} && npm run prod". #2509
- Slack default channel null breaks webhook. #2525
- Use port for ssh-keyscan when applicable. #2549
- Support passing
null
as default in get(). #2545 - Shopware recipe: First activate plugins THEN build them to avoid breaking theme:compile with unbuild themes (which were activated AFTER build).
- Shopware recipe sw:plugin:upgrade:all task.
- Removed the
artisan:public_disk
task. Use theartisan:storage:link
task instead. #2488 - Removed the following tasks
artisan:horizon:assets
,artisan:horizon:publish
,artisan:telescope:publish
andartisan:nova:publish
. These commands publish code that should be commited. #2488
- Documented check_remote task usage.
- Speedup deploy:clear_paths.
- Documented default_timeout config usage.
- Recipe for Joomla!.
- Fixed Silverstripe CMS recipe assets path. #1989
- Fixed check_remote task errors. #1990
- Fixed check_remote task revision resolution. #1994
- Fixed backward compatibility of bin/console for symfony4 recipe.
- Keep consistency with executable naming in lock recipe.
- Unexpected exception in config:* tasks when no stage is defined for host. #1909 #1909 #1909
- Fixed parsing of installed.json by Composer version 2.
- Fixed only call bin/php on the composer.phar file.
- Fixed more Symfony 5 compatibility issues. #1971
- Fixed compatibility with Symfony 4.x.
- Fixed incompatibility with Symfony 5. #1969
- Added Symfony 5 support.
- Added doc page with sample "real-world" Deployer script.
- Parameters
-f
or--file
now are accepted also without the equal sign. #1479
- Added
deploy:check_remote
task. #1755
- A task to cache the event listeners manifest in Laravel. #1893
- Added
check_remote_head
option, by setting this to true, deployer will avoid unnecessary new releases by checking the remote git HEAD without cloning the repo. #1755
- Fixed invalid magic-property phpdoc in Deployer\Deployer class. #1899
- Updated
config:hosts
andconfig:current
tasks to output only the selected stage.
- Re-added the
artisan:view:clear
task.
- Change the default shared files in the Symfony4 recipe. The .env file is versionned now and not the .env.local. #1881
- Change the
artisan:view:cache
task to only run theview:cache
command.
- Fixed detection of http user. #1876
- Added
git_clone_dissociate
option, defaults to true; when set to false git-clone doesn't dissociate the eventual reference repository after clone, useful when using git-lfs. #1820 - Added
writable_recursive
option (default: true) used in all writable modes (chmod, chown, chgrp, acl). #1822 - Added
artisan:optimize:clear
task for Laravel 5.7 and above.
- Added lock and unlock task to flow_framework receipe.
- Updated
artisan:optimize
to run for Laravel 5.7 and above, since it got added back last year. It still doesn't run for 5.5 and below. - View:clear command to a new view:cache command.
- Fixed rsync upload honor become option for host. #1796
- Fixed bug to execute ssh command on windows. #1775
- Fixed when recipe/deploy/writable.php resolves as one of http users.
- Fixed deployer detects wrong version. #1842
- Fixed crashes on including autoloader in recipe file. #1602
- Input option handling. #1793
- Improved ParallelExecutor::generateOptions to manage all types of InputOption. #1792
- Fixed http_user detection. #1790
- Support to define remote shell path via host-config. #1708 #1709 #1709
- Added
horizon:terminate
to the Laravel recipe. - Added
migrations_config
option to the Symfony recipes to specify Doctrine migration configuration to use. - Added recipe for sulu 2.0. #1758
- Added recipe for sulu 1.x and improve sulu 2.0 recipe. #1764
- Added
become
option for rsync upload.
- Laravel recipe should not run
artisan:cache:clear
indeploy
task. - Pass-through the quiet mode into the git commands for updating code.
deploy:writable
will no longer be able to automatically detect http_user if there are multiple candidates for the role. #1778
- Fixed Range expansion when hosts.yml is loaded. #1671
- Fixed usage (only if present) of deploy_path config setting. #1677
- Fixed adding custom headers causes Httpie default header override.
- Fixed Laravel
laravel_version
failure. - Fixed parser errors by adding the trim function to the changelog parser tokens.
- Fixed arguments for rsync to be properly escaped.
- Prevent multiple execution of task()->once() with --parallel and --limit option. #1419
- Added cache clear/warmup task for symfony4 recipe. #1575
- Added ability to use config params in host variables. #1508
- Make used shell configurable via
shellCommand
. #1536 - Added
cleanup_tty
option fordeploy:cleanup
. - Added Prestashop 1.6 recipe.
- Set dedicated user variable under CI environments, if not provided by git-config.
- Optimize locateBinaryPath() to create less subprocesses. #1634
- Laravel recipe runs migrations only once.
- Fixed that long http user name is not detected correctly. #1580
- Fixed missing
var/sessions
in Symfony 4 shared_dirs. - Fixed warning with host without configuration. #1583
- Removed the
magento:enable
task from the Magento 2 recipe since the module states are defined inapp/etc/config.php
and this task overwrote that. - Allow to set template file path in Drupal 7 recipe. #1603
- Fixed once() tasks that where being run multiple times with ParallelExecutor.
- Fixed high CPU usage when running in parallel.
- Fixed
deploy:writable
no need to specify http_user when using chgrp writable_mode. - Fixed
deploy:shared
missing from some recipes. #1663 - Fixed missing
deploy:writable
entries in recipes. #1661
- Added cache clear/warmup task for symfony4 recipe. #1575
- Added ability to use config params in host variables. #1508
- Make used shell configurable via
shellCommand
. #1536
- Fixed that long http user name is not detected correctly. #1580
- Fixed missing
var/sessions
in Symfony 4 shared_dirs. - Fixed warning with host without configuration. #1583
- Added debug:task command to display the order of task execution. #1488
- Added a description to the autocomplete command. #1472
- Added logging of unhandled exceptions into logfile. #1481
- Added default -H flag when using become. #1556
- Added Symfony 4 recipe. #1437
- Throw meaningfull exception on errors in cd(). #1480
- Make sure Context::pop() is called when Callback errors in on(...) function. #1513
- Update silverstripe recipe to support silverstripe 4.
- Show standard output in exceptions when error output is empty. #1554
- Improve readability of command for finding web server user. #1557
- Update symfony package dependencies to ~4.0. #1559
- Fixed within() to also restore the working-path when the given callback throws a Exception. #1463
- Fixed
pcntl_fork
check for blacklisted Ubuntu LTS boxes. #1476 - Fixed shared dir/file paths containing variables (
{{variable}}
).
- Fixed
previous_release
param whenrelease_name
was overridden. #1455
- Added support for GroupTask in invoke(). #1364
- Magento2 recipe optimizes the autoloader after the DI compilation. #1365
- Host's
roles()
API now can accept arrays too. - Fixed bug where wrong time format is passed to touch when deploying assets. #1390
- Added artisan:migrate:fresh task for laravel recipe.
- Added platform config to composer.json. #1426
- Moved symfony finder to dev-dependency. #1452
- Fixed bug when config:hosts shows more than one table of hosts. #1403
- Fixed bug that inventory method does not return Proxy. #1413
- Laravel version check defaults to 5.5 if not found. #1352
- Updated Laravel recipe to not run
artisan:optimize
on Laravel >= 5.5, as that command is now deprecated (see upgrade notes). #1352
- Fixed bug with curl ssh check in Httpie util.
- Fixed stat url.
- Added possibility to use callable when setting 'default_stage'.
- Added console init template for TYPO3 CMS. #1300
- Added possibility to run a task only once. #1311
- Added
git_recursive
option. - Added
shallow
task option. - Added
deploy:info
task. - Added
writable_tty
option fordeploy:writable
. - Added
default_timeout
option. #1256 - Added
user
parameter.
- Changed
branch
parameter and option behavior. - Extended
task
func to support callables. - Renamed
env_vars
toenv
.
- Improved the way
ParallelExecutor
handles option parameters. - Fixed no
stage
argument in parallel mode. #1299 - Improved environment variables management.
- Fixed
runLocally
to not cd into remote dir.
- Removed
terminate_message
option. - Removed
Result
class.
- Fixed bug with wrong version printed after self-update command.
- Fixed bug with excess option "--no-debug" in deploy:cache:clear task. #1290
- Improved
config:current
output (print each host's current release). - Fixed cache clearing in the Symfony recipe (now runs both cache:clear and cache:warmup). #1283
- Fixed bug where
ParallelExecutor
threw an error when custom options were added. - Fixed bug with parallel deploy in multi user envirouments. #1269
- Fixed bug with
self-update
warnings. #1226
- Check what
unzip
exists indeploy:vendors
task. - Added
dep run
command. #1263 - Added new
-o
option which allow to override default configuration. - Added
dep autocomplete
command. - Added
dep config:hosts
task to show inventory.
- Use either one of
command
,which
ortype
commands to locate custom binary path.
- Fixed parallel execution with non-standart php bin path. #1265
- Fixed ssh multiplexing initialization. #1268
- Fixed exit code on error. #1236
- Fixed bug with deploying in parallel to same host. #1271
- Fixed a parsing of laravel version in output. #1252
- Added
laravel_version
param. #1246
- Fixed upload / download with optional rsync ssh options. #1227
- Disable maintenance mode when Magento2 deployment fails. #1251
- Fixed storage link error when deploying Laravel < 5.3. #1246
- Exception when no task will be executed.
- Check for php7 in phar.
- Throw the correct exception on git --reference fail.
- Check if multiplexing is working before continuing. #1192
- Fixed upload with non-standard SSH port. #1218
- Ensure that host roles are treated as an array.
- Working path default is
release_path
instead of home for simple tasks. #1205
- Fixed ssh multiplexing master connection initializing.
- Fixed
dep ssh
command. #1204 - Fixed
dep config:current
task.
- Added
Request
class for get/post json requests. - Added host's
addSshFlag
andaddSshOption
methods.
- Allow to configure multiplexing. #1165
- Fixed command parsing in runLocally func.
- Fixed releases list and cleanup task. #1175
- Added console init template for Yii2 basic and advanced receipe. #1146
- Added
artisan:storage:link
task to the Laravel recipe to symlink the public storage directory. #1152 - Added
previous_release
var.
- Error message on locked release. #1145
- Fixed task order init/shared for yii2-app-advanced.php. #1143
- Added
use_atomic_symlink
anduse_relative_symlink
option 14a8f8. - Added
Ssh\Client
. #1092 - Added host ranges. #1092
- Added --hosts and --roles options. #1092
- Added
on
function. #1092 - Added
host
andlocalhost
. #1092 - Added persistent config. #1092
- Added
--log
option. #1092 - Added
cleanup_use_sudo
. #330
server
refactored tohost
. #1092Enviroment
refactored toConfiguration
. #1092- Phpunit test refactored. #1092
upload
anddownload
now uses rsync. #1092- Only native ssh client for now. #1092
- Task
current
toconfig:current
. #1092 onFailure
tofail
. #1092
- Added support for multiple choice questions. #1076
- Added a way to retrieve a defined task. #1008
- Added support for configFile in the NativeSsh implementation. #979
- Added
--no-hooks
option for running commands withoutbefore()
andafter()
. #1061 - Added a usefull error when ask*() is not used wihtin a task(). #1083
- Parse hyphens in environment setting names. #1073
- Autoload functions via Composer. #1015
- Added task queue:restart for Laravel recipe. #1007
- Changed output of errors for native ssh. #1012
- Fixed
Can not share same dirs
for shared folders having similar names. #995 - Fixed scalar override on recursive option merge. #1003
- Fixed incompatible PHP 7.0 syntax. #1020
- Fixed an issue with the output of ls in releases_list. #1004 #1036
- Fixed possibility to use PEM files with Native SSH.
- Fixed old releases not being cleaned up when keep_releases reduced by more than half.
- Fixed creating non-existed
writable_dirs
. #1000 - Fixed uploading files with spaces in a path via Native SSH. #1010
- Fixed merge of string array config options. #1067
- Fixed uploading of files containing spaces. #1077
- Fixed download of files when filename remote contains spaces. #1082
- Fixed
deployer/phar-update
dependency for composer installation.
- Added pretty print to config:dump command.
add()
now merges configuration options recursively. #962- Added
writable_chmod_recursive
boolean option to enable non-recursivechmod
. ask()
now supports autocomplete. #978release_path
returnscurrent_path
in non-deploy context. #922
- Fixed Flow recipe. #986
- Fixed
deploy:copy_dirs
task. #914 - Fixed default behavior for
working_path
. #381
- Removed const
Environment::DEPLOY_PATH
.
- Added
testLocally
function (analogtest
fn). - Added
ConfigurationException
. - Show message on file download.
- Added support for multiplexing for NativeSsh. #918
- Added GracefulShutdownException.
- Added Magento2 recipe. #911
- Server config
setPty
renamed topty
. #953 - Raised timeout for runLocally to 300 seconds. #955
deploy:unlock
now always successful. #950- Added option
-L
tosetfacl
. #956 - Now throw exception on duplicates in
shared_dirs
.
- Fixed native ssh scp option.
- Fixed bug with
$httpGroup
guard clause. #948
- Fixed bug with copy shared files.
- Fixed recursive upload in native ssh.
- Improved Laravel recipe.
- Improved exceptions in runLocally.
- Added more writable modes.
- Allowed init command overriding.
- Returned ACL as default writable mode.
- Fixed SilverStripe recipe.
- Fixed release sorting.
- Fixed release cleanup.
- Improved Symfony recipe.
- Fixed
DotArray
syntax inCollection
.