Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions deployer/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -56,6 +57,18 @@ public function get(string $name): Host\Host
return $branch;
});

$releaseName = Deployer::get()->config->fetch('release_name');
set('release_name', static function () use ($releaseName) {
upgradeReleasesList();
return $releaseName();
});

$releasesList = Deployer::get()->config->fetch('releases_list');
set('releases_list', static function () use ($releasesList) {
upgradeReleasesList();
return $releasesList();
});

$baseDir = $rootPath;
if (str_starts_with($baseDir, getcwd())) {
$baseDir = substr($baseDir, strlen(getcwd()));
Expand Down
34 changes: 34 additions & 0 deletions deployer/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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');
}
35 changes: 0 additions & 35 deletions deployer/tasks/deploy/prepare.php

This file was deleted.

1 change: 0 additions & 1 deletion deployer/tasks/release.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
'deploy:info',
'deploy:setup',
'deploy:lock',
'deploy:upgrade',
'deploy:release',
'deploy:copy_dirs',
'deploy:upload',
Expand Down
Loading