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