diff --git a/apps/webapp/app/components/runs/v3/DeploymentStatus.tsx b/apps/webapp/app/components/runs/v3/DeploymentStatus.tsx
index a1b7198ff3..dbfaf12d0d 100644
--- a/apps/webapp/app/components/runs/v3/DeploymentStatus.tsx
+++ b/apps/webapp/app/components/runs/v3/DeploymentStatus.tsx
@@ -118,3 +118,34 @@ export function deploymentStatusTitle(status: WorkerDeploymentStatus, isBuilt: b
}
}
}
+
+// PENDING and CANCELED are not used so are ommited from the UI
+export const deploymentStatuses: WorkerDeploymentStatus[] = [
+ "BUILDING",
+ "DEPLOYING",
+ "DEPLOYED",
+ "FAILED",
+ "TIMED_OUT",
+];
+
+export function deploymentStatusDescription(status: WorkerDeploymentStatus): string {
+ switch (status) {
+ case "PENDING":
+ return "The deployment is queued and waiting to be processed.";
+ case "BUILDING":
+ return "The code is being built and prepared for deployment.";
+ case "DEPLOYING":
+ return "The deployment is in progress and tasks are being indexed.";
+ case "DEPLOYED":
+ return "The deployment has completed successfully.";
+ case "CANCELED":
+ return "The deployment was manually canceled.";
+ case "FAILED":
+ return "The deployment encountered an error and could not complete.";
+ case "TIMED_OUT":
+ return "The deployment exceeded the maximum allowed time and was stopped.";
+ default: {
+ assertNever(status);
+ }
+ }
+}
diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.deployments/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.deployments/route.tsx
index 00b41bc728..61d0f8718a 100644
--- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.deployments/route.tsx
+++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.v3.$projectParam.deployments/route.tsx
@@ -35,7 +35,11 @@ import {
TableRow,
} from "~/components/primitives/Table";
import { TextLink } from "~/components/primitives/TextLink";
-import { DeploymentStatus } from "~/components/runs/v3/DeploymentStatus";
+import {
+ DeploymentStatus,
+ deploymentStatuses,
+ deploymentStatusDescription,
+} from "~/components/runs/v3/DeploymentStatus";
import { RetryDeploymentIndexingDialog } from "~/components/runs/v3/RetryDeploymentIndexingDialog";
import { RollbackDeploymentDialog } from "~/components/runs/v3/RollbackDeploymentDialog";
import { useOrganization } from "~/hooks/useOrganizations";
@@ -120,7 +124,30 @@ export default function Page() {
Deploy
Env
Version
- Status
+
+ {deploymentStatuses.map((status) => (
+
+
+
+
+
+ {deploymentStatusDescription(status)}
+
+
+ ))}
+
+ }
+ >
+ Status
+
Tasks
Deployed at
Deployed by