deployer/CHANGELOG.md
Sacharski Bartłomiej 514d997c15
[issue-2170] Use on(localhost(), ...) instead of runLocally in check_remote.php (#2175)
Reworked the `deploy:check_remote` step, to use the `on(localhost(), ...)`,
instead of relying on `runLocally`.

This has been changed, to make sure that the all functions that
are being executed and are related to "local" part of the logic,
are ran on the local host.

Previously in `runLocally(sprintf("%s ls-remote $opt $repository $ref", get('bin/git')));`
the `get('bin/git')` would've been executed on the remote host, which
could have resulted in an unexpected behaviour.

By closing all of the instructions, in the closure that is executed
by the `on()` function, we are sure that the context is set to the
right host.
2020-10-01 20:32:51 +03:00

27 KiB

Changelog

master

v6.8.0...master

Added

  • Added a Slack notification task on rollback.
  • Recipe for crontab tasks.
  • ISPManager recipe and docs.
  • Symfony 5 recipe.
  • Command for checking if a deploy is unlocked. #2150 #2150

Fixed

  • Normalize CRLF to LF new line endings. #2111
  • Recipe for Magento now supports locale configuration for setup:static-content:deploy. #2040
  • When symfony_env is set to dev, require-dev are not installed. #2035
  • Fixed exit status of rollback command when there are no releases to rollback to. #2052
  • When the second parameter $options passed to run() and runLocally(), use it to overwrite default env config. #2165
  • Replaced runLocally with on(localhost(), ...) in deploy:check_remote to make sure all code is ran on localhost. #2170

v6.8.0

v6.7.3...v6.8.0

Added

  • Documented check_remote task usage.
  • Speedup deploy:clear_paths.
  • Documented default_timeout config usage.
  • Recipe for Joomla!.

Fixed

  • 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.

v6.7.3

v6.7.2...v6.7.3

Fixed

  • Fixed more Symfony 5 compatibility issues. #1971

v6.7.2

v6.7.1...v6.7.2

Fixed

  • Fixed compatibility with Symfony 4.x.

v6.7.1

v6.7.0...v6.7.1

Fixed

  • Fixed incompatibility with Symfony 5. #1969

v6.7.0

v6.6.0...v6.7.0

Changed

  • Added Symfony 5 support.

v6.6.0

v6.5.0...v6.6.0

Added

  • Added doc page with sample "real-world" Deployer script.

Fixed

  • Parameters -f or --file now are accepted also without the equal sign. #1479

v6.5.0

v6.4.7...v6.5.0

Added

  • Added deploy:check_remote task. #1755

v6.4.7

v6.4.6...v6.4.7

Added

  • 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

  • Fixed invalid magic-property phpdoc in Deployer\Deployer class. #1899
  • Updated config:hosts and config:current tasks to output only the selected stage.

v6.4.6

v6.4.5...v6.4.6

Added

  • Re-added the artisan:view:clear task.

Changed

  • 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 the view:cache command.

v6.4.5

v6.4.4...v6.4.5

Fixed

  • Fixed detection of http user. #1876

v6.4.4

v6.4.3...v6.4.4

Added

  • 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.

Changed

  • 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

  • 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

v6.4.3

v6.4.2...v6.4.3

Fixed

  • Input option handling. #1793

v6.4.2

v6.4.1...v6.4.2

Fixed

  • Improved ParallelExecutor::generateOptions to manage all types of InputOption. #1792

v6.4.1

v6.4.0...v6.4.1

Fixed

  • Fixed http_user detection. #1790

v6.4.0

v6.3.0...v6.4.0

Added

  • 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.

Changed

  • Laravel recipe should not run artisan:cache:clear in deploy 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

  • 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

v6.3.0

v6.2.0...v6.3.0

Added

  • 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 for deploy:cleanup.
  • Added Prestashop 1.6 recipe.
  • Set dedicated user variable under CI environments, if not provided by git-config.

Changed

  • Optimize locateBinaryPath() to create less subprocesses. #1634
  • Laravel recipe runs migrations only once.

Fixed

  • 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 in app/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

v6.2.0

v6.1.0...v6.2.0

Added

  • 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

  • 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

v6.1.0

v6.0.5...v6.1.0

Added

  • 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

Changed

  • 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

  • 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}}).

v6.0.5

v6.0.4...v6.0.5

Fixed

  • Fixed previous_release param when release_name was overridden. #1455

v6.0.4

v6.0.3...v6.0.4

Changed

  • 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

  • Fixed bug when config:hosts shows more than one table of hosts. #1403
  • Fixed bug that inventory method does not return Proxy. #1413

v6.0.3

v6.0.2...v6.0.3

Changed

  • Laravel version check defaults to 5.5 if not found. #1352

Fixed

  • Updated Laravel recipe to not run artisan:optimize on Laravel >= 5.5, as that command is now deprecated (see upgrade notes). #1352

v6.0.2

v6.0.1...v6.0.2

Fixed

  • Fixed bug with curl ssh check in Httpie util.

v6.0.1

v6.0.0...v6.0.1

Fixed

  • Fixed stat url.

v6.0.0

v5.1.3...v6.0.0

Added

  • 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 for deploy:writable.
  • Added default_timeout option. #1256
  • Added user parameter.

Changed

  • Changed branch parameter and option behavior.
  • Extended task func to support callables.
  • Renamed env_vars to env.

Fixed

  • 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

  • Removed terminate_message option.
  • Removed Result class.

v5.1.3

v5.1.2...v5.1.3

Fixed

  • Fixed bug with wrong version printed after self-update command.
  • Fixed bug with excess option "--no-debug" in deploy:cache:clear task. #1290

v5.1.2

v5.1.1...v5.1.2

Changed

  • 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

  • Fixed bug where ParallelExecutor threw an error when custom options were added.
  • Fixed bug with parallel deploy in multi user envirouments. #1269

v5.1.1

v5.1.0...v5.1.1

Fixed

  • Fixed bug with self-update warnings. #1226

v5.1.0

v5.0.3...v5.1.0

Added

  • Check what unzip exists in deploy: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.

Changed

  • Use either one of command, which or type commands to locate custom binary path.

Fixed

  • 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

v5.0.3

v5.0.2...v5.0.3

Fixed

  • Fixed a parsing of laravel version in output. #1252

v5.0.2

v5.0.1...v5.0.2

Added

  • Added laravel_version param. #1246

Fixed

  • 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

v5.0.1

v5.0.0...v5.0.1

Added

  • Exception when no task will be executed.
  • Check for php7 in phar.

Fixed

  • 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.

v5.0.0

v5.0.0-beta.3...v5.0.0

Changed

  • Working path default is release_path instead of home for simple tasks. #1205

Fixed

  • Fixed ssh multiplexing master connection initializing.
  • Fixed dep ssh command. #1204
  • Fixed dep config:current task.

v5.0.0-beta.3

v5.0.0-beta.2...v5.0.0-beta.3

Added

  • Added Request class for get/post json requests.
  • Added host's addSshFlag and addSshOption methods.

Changed

  • Allow to configure multiplexing. #1165

Fixed

  • Fixed command parsing in runLocally func.
  • Fixed releases list and cleanup task. #1175

v5.0.0-beta.2

v5.0.0-beta.1...v5.0.0-beta.2

Added

  • 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.

Changed

  • Error message on locked release. #1145

Fixed

  • Fixed task order init/shared for yii2-app-advanced.php. #1143

v5.0.0-beta.1

v4.3.0...v5.0.0-beta.1

Added

  • Added use_atomic_symlink and use_relative_symlink option 14a8f8.
  • Added Ssh\Client. #1092
  • Added host ranges. #1092
  • Added --hosts and --roles options. #1092
  • Added on function. #1092
  • Added host and localhost. #1092
  • Added persistent config. #1092
  • Added --log option. #1092
  • Added cleanup_use_sudo. #330

Changed

  • server refactored to host. #1092
  • Enviroment refactored to Configuration. #1092
  • Phpunit test refactored. #1092
  • upload and download now uses rsync. #1092
  • Only native ssh client for now. #1092
  • Task current to config:current. #1092
  • onFailure to fail. #1092

v4.3.0

v4.2.1...v4.3.0

Added

  • 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 without before() and after(). #1061
  • Added a usefull error when ask*() is not used wihtin a task(). #1083

Changed

  • 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

  • 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

v4.2.1

v4.2.0...v4.2.1

Fixed

  • Fixed deployer/phar-update dependency for composer installation.

v4.2.0

v4.1.0...v4.2.0

Added

  • Added pretty print to config:dump command.

Changed

  • add() now merges configuration options recursively. #962
  • Added writable_chmod_recursive boolean option to enable non-recursive chmod.
  • ask() now supports autocomplete. #978
  • release_path returns current_path in non-deploy context. #922

Fixed

  • Fixed Flow recipe. #986
  • Fixed deploy:copy_dirs task. #914
  • Fixed default behavior for working_path. #381

Removed

  • Removed const Environment::DEPLOY_PATH.

v4.1.0

v4.0.2...v4.1.0

Added

  • Added testLocally function (analog test fn).
  • Added ConfigurationException.
  • Show message on file download.
  • Added support for multiplexing for NativeSsh. #918
  • Added GracefulShutdownException.
  • Added Magento2 recipe. #911

Changed

  • Server config setPty renamed to pty. #953
  • Raised timeout for runLocally to 300 seconds. #955
  • deploy:unlock now always successful. #950
  • Added option -L to setfacl. #956
  • Now throw exception on duplicates in shared_dirs.

Fixed

  • Fixed native ssh scp option.
  • Fixed bug with $httpGroup guard clause. #948

v4.0.2

v4.0.1...v4.0.2

Fixed

  • Fixed bug with copy shared files.
  • Fixed recursive upload in native ssh.
  • Improved Laravel recipe.
  • Improved exceptions in runLocally.

v4.0.1

v4.0.0...v4.0.1

Added

  • Added more writable modes.

Changed

  • Allowed init command overriding.
  • Returned ACL as default writable mode.

Fixed

  • Fixed SilverStripe recipe.
  • Fixed release sorting.
  • Fixed release cleanup.
  • Improved Symfony recipe.
  • Fixed DotArray syntax in Collection.
  • Fixed typo3 recipe.
  • Fixed remove of shared dir on first deploy.