fix: prevent cleanup exceptions from marking successful deployments as failed (#7460)
This commit is contained in:
commit
9c80e15dd9
1 changed files with 14 additions and 2 deletions
|
|
@ -1813,9 +1813,9 @@ private function health_check()
|
||||||
$this->application->update(['status' => 'running']);
|
$this->application->update(['status' => 'running']);
|
||||||
$this->application_deployment_queue->addLogEntry('New container is healthy.');
|
$this->application_deployment_queue->addLogEntry('New container is healthy.');
|
||||||
break;
|
break;
|
||||||
}
|
} elseif (str($this->saved_outputs->get('health_check'))->replace('"', '')->value() === 'unhealthy') {
|
||||||
if (str($this->saved_outputs->get('health_check'))->replace('"', '')->value() === 'unhealthy') {
|
|
||||||
$this->newVersionIsHealthy = false;
|
$this->newVersionIsHealthy = false;
|
||||||
|
$this->application_deployment_queue->addLogEntry('New container is unhealthy.', type: 'error');
|
||||||
$this->query_logs();
|
$this->query_logs();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -3187,6 +3187,18 @@ private function stop_running_container(bool $force = false)
|
||||||
$this->graceful_shutdown_container($this->container_name);
|
$this->graceful_shutdown_container($this->container_name);
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
// If new version is healthy, this is just cleanup - don't fail the deployment
|
||||||
|
if ($this->newVersionIsHealthy || $force) {
|
||||||
|
$this->application_deployment_queue->addLogEntry(
|
||||||
|
"Warning: Could not remove old container: {$e->getMessage()}",
|
||||||
|
'stderr',
|
||||||
|
hidden: true
|
||||||
|
);
|
||||||
|
|
||||||
|
return; // Don't re-throw - cleanup failures shouldn't fail successful deployments
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only re-throw if deployment hasn't succeeded yet
|
||||||
throw new DeploymentException("Failed to stop running container: {$e->getMessage()}", $e->getCode(), $e);
|
throw new DeploymentException("Failed to stop running container: {$e->getMessage()}", $e->getCode(), $e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue