diff --git a/composer.lock b/composer.lock index 9e757f9db8..f27c08954d 100644 --- a/composer.lock +++ b/composer.lock @@ -4807,16 +4807,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "0.41.0", + "version": "0.41.1", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "96316272a3cee1a3abf5b9f05ae49ebbff03725e" + "reference": "6d9318abf4542a757c87abf056557d6afa1dc06b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/96316272a3cee1a3abf5b9f05ae49ebbff03725e", - "reference": "96316272a3cee1a3abf5b9f05ae49ebbff03725e", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/6d9318abf4542a757c87abf056557d6afa1dc06b", + "reference": "6d9318abf4542a757c87abf056557d6afa1dc06b", "shasum": "" }, "require": { @@ -4852,9 +4852,9 @@ "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "support": { "issues": "https://github.com/appwrite/sdk-generator/issues", - "source": "https://github.com/appwrite/sdk-generator/tree/0.41.0" + "source": "https://github.com/appwrite/sdk-generator/tree/0.41.1" }, - "time": "2025-05-26T09:47:45+00:00" + "time": "2025-06-01T04:20:04+00:00" }, { "name": "doctrine/annotations", diff --git a/docker-compose.yml b/docker-compose.yml index 29a43aca91..1861af9afd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -213,7 +213,7 @@ services: appwrite-console: <<: *x-logging container_name: appwrite-console - image: appwrite/console:6.0.32 + image: appwrite/console:6.0.35 restart: unless-stopped networks: - appwrite diff --git a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php index 589416be3d..c933f6cda8 100644 --- a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php +++ b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php @@ -275,6 +275,7 @@ class Builds extends Action $deployment = $dbForProject->updateDocument('deployments', $deployment->getId(), $deployment); if ($deployment->getInternalId() === $resource->getAttribute('latestDeploymentInternalId', '')) { + $resource = $dbForProject->getDocument($resource->getCollection(), $resource->getId()); $resource = $resource->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument($resource->getCollection(), $resource->getId(), $resource); } @@ -525,6 +526,7 @@ class Builds extends Action $deployment = $dbForProject->updateDocument('deployments', $deployment->getId(), $deployment); if ($deployment->getInternalId() === $resource->getAttribute('latestDeploymentInternalId', '')) { + $resource = $dbForProject->getDocument($resource->getCollection(), $resource->getId()); $resource = $resource->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument($resource->getCollection(), $resource->getId(), $resource); } @@ -1056,6 +1058,7 @@ class Builds extends Action $deployment = $dbForProject->updateDocument('deployments', $deploymentId, $deployment); if ($deployment->getInternalId() === $resource->getAttribute('latestDeploymentInternalId', '')) { + $resource = $dbForProject->getDocument($resource->getCollection(), $resource->getId()); $resource = $resource->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument($resource->getCollection(), $resource->getId(), $resource); } @@ -1073,15 +1076,22 @@ class Builds extends Action /** Set auto deploy */ if ($deployment->getAttribute('activate') === true) { // Check if current active deployment started later than this deployment - $currentDeploymentId = $resource->getAttribute('deploymentId', ''); - if (!empty($currentDeploymentId)) { - $currentDeployment = $dbForProject->getDocument('deployments', $currentDeploymentId); - if (!$currentDeployment->isEmpty()) { - $currentStartTime = $currentDeployment->getAttribute('buildStartedAt', ''); - $newStartTime = $deployment->getAttribute('buildStartedAt', ''); + $resource = $dbForProject->getDocument($resource->getCollection(), $resource->getId()); + $currentActiveDeploymentId = $resource->getAttribute('deploymentId', ''); + if (!empty($currentActiveDeploymentId)) { + $currentActiveDeployment = $dbForProject->getDocument('deployments', $currentActiveDeploymentId); + if (!$currentActiveDeployment->isEmpty()) { + $currentActiveStartTime = $currentActiveDeployment->getAttribute('buildStartedAt', ''); + $currentActiveEndTime = $currentActiveDeployment->getAttribute('buildEndedAt', ''); + $deploymentStartTime = $deployment->getAttribute('buildStartedAt', ''); + $deploymentEndTime = $deployment->getAttribute('buildEndedAt', ''); - if (!empty($currentStartTime) && !empty($newStartTime) && $currentStartTime > $newStartTime) { - Console::info('Skipping auto-activation as current deployment started later'); + // Skip auto-activation if: + // 1. Current active deployment started later than deployment that is being activated, AND + // 2. Current active deployment finished earlier than deployment that is being activated + if ((!empty($currentActiveStartTime) && !empty($deploymentStartTime) && $currentActiveStartTime > $deploymentStartTime) && + (!empty($currentActiveEndTime) && !empty($deploymentEndTime) && $currentActiveEndTime < $deploymentEndTime)) { + Console::info('Skipping auto-activation as current deployment is more recent'); return; } } @@ -1263,6 +1273,7 @@ class Builds extends Action $deployment = $dbForProject->updateDocument('deployments', $deploymentId, $deployment); if ($deployment->getInternalId() === $resource->getAttribute('latestDeploymentInternalId', '')) { + $resource = $dbForProject->getDocument($resource->getCollection(), $resource->getId()); $resource = $resource->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument($resource->getCollection(), $resource->getId(), $resource); }