Skip to content

Commit 0abc9b3

Browse files
authored
Fix upgrade Deployer 6 -> 7 (#108)
Damit die Releasenummerierung wieder korrekt fortgesetzt wird
1 parent 8dc5753 commit 0abc9b3

File tree

4 files changed

+47
-36
lines changed

4 files changed

+47
-36
lines changed

deployer/config.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use function dirname;
99
use function in_array;
1010
use function strlen;
11+
use function YDeploy\upgradeReleasesList;
1112

1213
$rootPath = dirname(DEPLOYER_DEPLOY_FILE); /** @phpstan-ignore-line */
1314
$command = (new ArgvInput())->getFirstArgument();
@@ -56,6 +57,18 @@ public function get(string $name): Host\Host
5657
return $branch;
5758
});
5859

60+
$releaseName = Deployer::get()->config->fetch('release_name');
61+
set('release_name', static function () use ($releaseName) {
62+
upgradeReleasesList();
63+
return $releaseName();
64+
});
65+
66+
$releasesList = Deployer::get()->config->fetch('releases_list');
67+
set('releases_list', static function () use ($releasesList) {
68+
upgradeReleasesList();
69+
return $releasesList();
70+
});
71+
5972
$baseDir = $rootPath;
6073
if (str_starts_with($baseDir, getcwd())) {
6174
$baseDir = substr($baseDir, strlen(getcwd()));

deployer/functions.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@
22

33
namespace YDeploy;
44

5+
use DateTimeImmutable;
6+
use DateTimeZone;
57
use Deployer\Host\Host;
68

9+
use function Deployer\cd;
710
use function Deployer\download;
811
use function Deployer\get;
912
use function Deployer\on;
13+
use function Deployer\run;
14+
use function Deployer\test;
1015
use function Deployer\upload;
1116

1217
function uploadContent(string $destination, string $content): void
@@ -54,3 +59,32 @@ function onHost(Host $host, callable $callback)
5459

5560
return $return;
5661
}
62+
63+
function upgradeReleasesList(): void
64+
{
65+
cd('{{deploy_path}}');
66+
67+
if (test('[ -f .dep/releases_log ]') || !test('[ -f .dep/releases ]')) {
68+
return;
69+
}
70+
71+
$releasesString = trim(run('cat .dep/releases'));
72+
if (!$releasesString) {
73+
return;
74+
}
75+
76+
$releases = [];
77+
foreach (explode("\n", $releasesString) as $release) {
78+
$release = explode(',', $release);
79+
80+
$releases[$release[1]] = json_encode([
81+
'created_at' => DateTimeImmutable::createFromFormat('YmdHis', $release[0])->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:sO'),
82+
'release_name' => $release[1],
83+
'user' => 'unknown',
84+
'target' => 'HEAD',
85+
]);
86+
}
87+
88+
run('echo ' . escapeshellarg(implode("\n", $releases)) . ' > .dep/releases_log');
89+
run('echo ' . escapeshellarg(array_key_last($releases)) . ' > .dep/latest_release');
90+
}

deployer/tasks/deploy/prepare.php

Lines changed: 0 additions & 35 deletions
This file was deleted.

deployer/tasks/release.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
'deploy:info',
88
'deploy:setup',
99
'deploy:lock',
10-
'deploy:upgrade',
1110
'deploy:release',
1211
'deploy:copy_dirs',
1312
'deploy:upload',

0 commit comments

Comments
 (0)