Skip to content

Commit 3e5277d

Browse files
committed
Extend build timeout on deployment start
1 parent 77a979f commit 3e5277d

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

apps/webapp/app/routes/api.v1.deployments.$deploymentId.start.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ export async function action({ request, params }: ActionFunctionArgs) {
5050
},
5151
(error) => {
5252
switch (error.type) {
53+
case "failed_to_extend_deployment_timeout":
54+
return json(null, { status: 204 }); // ignore these errors for now
5355
case "deployment_not_found":
5456
return json({ error: "Deployment not found" }, { status: 404 });
5557
case "deployment_not_pending":

apps/webapp/app/v3/services/deployment.server.ts

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { type AuthenticatedEnvironment } from "~/services/apiAuth.server";
22
import { BaseService } from "./baseService.server";
33
import { errAsync, fromPromise, okAsync } from "neverthrow";
4-
import { type WorkerDeployment } from "@trigger.dev/database";
4+
import { type WorkerDeploymentStatus, type WorkerDeployment } from "@trigger.dev/database";
55
import { type GitMeta } from "@trigger.dev/core/v3";
6+
import { TimeoutDeploymentService } from "./timeoutDeployment.server";
7+
import { env } from "~/env.server";
68

79
export class DeploymentService extends BaseService {
810
public async startDeployment(
@@ -55,9 +57,26 @@ export class DeploymentService extends BaseService {
5557
if (result.count === 0) {
5658
return errAsync({ type: "deployment_not_pending" as const });
5759
}
58-
return okAsync(undefined);
60+
return okAsync({ id: deployment.id });
5961
});
6062

61-
return getDeployment().andThen(validateDeployment).andThen(updateDeployment);
63+
const extendTimeout = (deployment: Pick<WorkerDeployment, "id">) =>
64+
fromPromise(
65+
TimeoutDeploymentService.enqueue(
66+
deployment.id,
67+
"BUILDING" satisfies WorkerDeploymentStatus,
68+
"Building timed out",
69+
new Date(Date.now() + env.DEPLOY_TIMEOUT_MS)
70+
),
71+
(error) => ({
72+
type: "failed_to_extend_deployment_timeout" as const,
73+
cause: error,
74+
})
75+
);
76+
77+
return getDeployment()
78+
.andThen(validateDeployment)
79+
.andThen(updateDeployment)
80+
.andThen(extendTimeout);
6281
}
6382
}

0 commit comments

Comments
 (0)