From 4fc66c72b8a5c920fd4877a4c33ffb1721e86214 Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Mon, 8 Jun 2026 18:14:45 +0200 Subject: [PATCH] Prefer selected Coolify deployment commit --- services/nginx/app/classes/release_manager.php | 7 +++++++ .../Unit/ReleaseManager/ReleaseManagerTest.php | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/services/nginx/app/classes/release_manager.php b/services/nginx/app/classes/release_manager.php index f327c902..21dad092 100644 --- a/services/nginx/app/classes/release_manager.php +++ b/services/nginx/app/classes/release_manager.php @@ -7113,6 +7113,13 @@ class release_manager private function releaseCoolifyGitCommitSha(array $target, array $context): string { + foreach (['commit_sha', 'commit'] as $key) { + $value = trim((string)($target[$key] ?? '')); + if ($value !== '') { + return $value; + } + } + foreach ([ 'coolify_git_commit_sha', 'git_commit_sha', diff --git a/services/nginx/app/tests/Unit/ReleaseManager/ReleaseManagerTest.php b/services/nginx/app/tests/Unit/ReleaseManager/ReleaseManagerTest.php index 99d1abf3..aac3f4ae 100644 --- a/services/nginx/app/tests/Unit/ReleaseManager/ReleaseManagerTest.php +++ b/services/nginx/app/tests/Unit/ReleaseManager/ReleaseManagerTest.php @@ -629,6 +629,22 @@ it('injects selected API commit into Coolify runtime env unless explicitly set', expect($env['COMMIT_SHA'])->toBe($explicitCommit); }); +it('uses the selected deployment commit before stale Coolify context commits', function (): void { + $manager = new release_manager(); + $gitCommitSha = new ReflectionMethod(release_manager::class, 'releaseCoolifyGitCommitSha'); + $gitCommitSha->setAccessible(true); + + $selectedCommit = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; + $staleCommit = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'; + + expect($gitCommitSha->invoke($manager, [ + 'commit_sha' => $selectedCommit, + ], [ + 'coolify_git_commit_sha' => $staleCommit, + 'git_commit_sha' => $staleCommit, + ]))->toBe($selectedCommit); +}); + it('injects selected frontend commit into Coolify runtime env for manifest builds', function (): void { $manager = new release_manager(); $runtimeEnv = new ReflectionMethod(release_manager::class, 'releaseCoolifyRuntimeEnv');