deployer/recipe/deploy/cleanup.php
Alex Mayer 2ff8593027
Refactor deploy:cleanup Command (#2788)
* Refactor deploy:cleanup Command

Remove $runOpts since it's not actually used
Move release symlink deletion to beginning of method. This will
allow the release symlink to be deleted even if deleting the old
releases fails.

* Refactor deploy:releases_log

Fixes issue where multiple failed releases in a row cause old
releases to not be cleaned up.

Fixes #2759

Co-authored-by: Anton Medvedev <anton@medv.io>
2022-01-13 14:29:32 +01:00

21 lines
546 B
PHP

<?php
namespace Deployer;
// Use sudo in deploy:cleanup task for rm command.
set('cleanup_use_sudo', false);
desc('Cleanup old releases');
task('deploy:cleanup', function () {
$releases = get('releases_list');
$keep = get('keep_releases');
$sudo = get('cleanup_use_sudo') ? 'sudo' : '';
run("cd {{deploy_path}} && if [ -e release ]; then rm release; fi");
if ($keep > 0) {
foreach (array_slice($releases, $keep) as $release) {
run("$sudo rm -rf {{deploy_path}}/releases/$release");
}
}
});