From 2a9f9f68515f8bdf4db8d30de071111d822ba5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 9 Jan 2026 11:25:39 +0100 Subject: [PATCH] Fix race condition with screenshot worker updating dpeloyment --- .../Modules/Functions/Workers/Builds.php | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php index 530203734f..932e250028 100644 --- a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php +++ b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php @@ -913,17 +913,6 @@ class Builds extends Action Console::log('Build details stored'); $this->afterBuildSuccess($queueForRealtime, $dbForProject, $deployment, $runtime, $adapter); - $logs = $deployment->getAttribute('buildLogs', ''); - - /** Screenshot site */ - if ($resource->getCollection() === 'sites') { - $queueForScreenshots - ->setDeploymentId($deployment->getId()) - ->setProject($project) - ->trigger(); - - Console::log('Site screenshot queued'); - } $logs = $deployment->getAttribute('buildLogs', ''); $date = \date('H:i:s'); @@ -943,6 +932,16 @@ class Builds extends Action if ($isVcsEnabled) { $this->runGitAction('ready', $github, $providerCommitHash, $owner, $repositoryName, $project, $resource, $deployment->getId(), $dbForProject, $dbForPlatform, $queueForRealtime, $platform); } + + /** Screenshot site */ + if ($resource->getCollection() === 'sites') { + $queueForScreenshots + ->setDeploymentId($deployment->getId()) + ->setProject($project) + ->trigger(); + + Console::log('Site screenshot queued'); + } /** Set auto deploy */ $activateBuild = false; @@ -1093,9 +1092,10 @@ class Builds extends Action $endTime = DateTime::now(); $durationEnd = \microtime(true); - $deployment->setAttribute('buildEndedAt', $endTime); - $deployment->setAttribute('buildDuration', \intval(\ceil($durationEnd - $durationStart))); - $deployment = $dbForProject->updateDocument('deployments', $deployment->getId(), $deployment); + $deployment = $dbForProject->updateDocument('deployments', $deployment->getId(), new Document([ + 'buildEndedAt' => $endTime, + 'buildDuration' => \intval(\ceil($durationEnd - $durationStart)), + ])); $queueForRealtime ->setPayload($deployment->getArrayCopy()) ->trigger();