From b534a7a5178fd7457e5e6d4fbcf10651334102a1 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Tue, 22 Jul 2025 16:38:28 +0200 Subject: [PATCH 1/2] Fix upgrade Deployer 6 -> 7 --- deployer/config.php | 13 ++++++++++++ deployer/functions.php | 34 ++++++++++++++++++++++++++++++ deployer/tasks/deploy/prepare.php | 35 ------------------------------- deployer/tasks/release.php | 1 - 4 files changed, 47 insertions(+), 36 deletions(-) delete mode 100644 deployer/tasks/deploy/prepare.php diff --git a/deployer/config.php b/deployer/config.php index 26070f2..42401c6 100644 --- a/deployer/config.php +++ b/deployer/config.php @@ -8,6 +8,7 @@ use function dirname; use function in_array; use function strlen; +use function YDeploy\upgradeReleasesList; $rootPath = dirname(DEPLOYER_DEPLOY_FILE); /** @phpstan-ignore-line */ $command = (new ArgvInput())->getFirstArgument(); @@ -56,6 +57,18 @@ public function get(string $name): Host\Host return $branch; }); +$releaseName = Deployer::get()->config->fetch('release_name'); +set('release_name', function () use ($releaseName) { + upgradeReleasesList(); + return $releaseName(); +}); + +$releasesList = Deployer::get()->config->fetch('releases_list'); +set('releases_list', function () use ($releasesList) { + upgradeReleasesList(); + return $releasesList(); +}); + $baseDir = $rootPath; if (str_starts_with($baseDir, getcwd())) { $baseDir = substr($baseDir, strlen(getcwd())); diff --git a/deployer/functions.php b/deployer/functions.php index c415402..4752af8 100644 --- a/deployer/functions.php +++ b/deployer/functions.php @@ -2,11 +2,16 @@ namespace YDeploy; +use DateTimeImmutable; +use DateTimeZone; use Deployer\Host\Host; +use function Deployer\cd; use function Deployer\download; use function Deployer\get; use function Deployer\on; +use function Deployer\run; +use function Deployer\test; use function Deployer\upload; function uploadContent(string $destination, string $content): void @@ -54,3 +59,32 @@ function onHost(Host $host, callable $callback) return $return; } + +function upgradeReleasesList(): void +{ + cd('{{deploy_path}}'); + + if (test('[ -f .dep/releases_log ]') || !test('[ -f .dep/releases ]')) { + return; + } + + $releasesString = trim(run('cat .dep/releases')); + if (!$releasesString) { + return; + } + + $releases = []; + foreach (explode("\n", $releasesString) as $release) { + $release = explode(',', $release); + + $releases[$release[1]] = json_encode([ + 'created_at' => DateTimeImmutable::createFromFormat('YmdHis', $release[0])->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:sO'), + 'release_name' => $release[1], + 'user' => 'unknown', + 'target' => 'HEAD', + ]); + } + + run('echo ' . escapeshellarg(implode("\n", $releases)) . ' > .dep/releases_log'); + run('echo ' . escapeshellarg(array_key_last($releases)) . ' > .dep/latest_release'); +} diff --git a/deployer/tasks/deploy/prepare.php b/deployer/tasks/deploy/prepare.php deleted file mode 100644 index c3cc96e..0000000 --- a/deployer/tasks/deploy/prepare.php +++ /dev/null @@ -1,35 +0,0 @@ - DateTimeImmutable::createFromFormat('YmdHis', $release[0])->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:sO'), - 'release_name' => $release[1], - 'user' => 'unknown', - 'target' => 'HEAD', - ]); - } - - run('echo ' . escapeshellarg(implode("\n", $releases)) . ' > .dep/releases_log'); - run('echo ' . escapeshellarg(array_key_last($releases)) . ' > .dep/latest_release'); -}); diff --git a/deployer/tasks/release.php b/deployer/tasks/release.php index fabb187..2707c0e 100644 --- a/deployer/tasks/release.php +++ b/deployer/tasks/release.php @@ -7,7 +7,6 @@ 'deploy:info', 'deploy:setup', 'deploy:lock', - 'deploy:upgrade', 'deploy:release', 'deploy:copy_dirs', 'deploy:upload', From 521959a6e9b0a065df1e12bb341e586f7936b0bb Mon Sep 17 00:00:00 2001 From: gharlan Date: Tue, 22 Jul 2025 14:41:59 +0000 Subject: [PATCH 2/2] Apply php-cs-fixer changes --- deployer/config.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployer/config.php b/deployer/config.php index 42401c6..fc392ce 100644 --- a/deployer/config.php +++ b/deployer/config.php @@ -58,13 +58,13 @@ public function get(string $name): Host\Host }); $releaseName = Deployer::get()->config->fetch('release_name'); -set('release_name', function () use ($releaseName) { +set('release_name', static function () use ($releaseName) { upgradeReleasesList(); return $releaseName(); }); $releasesList = Deployer::get()->config->fetch('releases_list'); -set('releases_list', function () use ($releasesList) { +set('releases_list', static function () use ($releasesList) { upgradeReleasesList(); return $releasesList(); });