@@ -2,9 +2,10 @@ import { type AuthenticatedEnvironment } from "~/services/apiAuth.server";
22import { BaseService } from "./baseService.server" ;
33import { errAsync , fromPromise , okAsync } from "neverthrow" ;
44import { type WorkerDeploymentStatus , type WorkerDeployment } from "@trigger.dev/database" ;
5- import { logger , type GitMeta } from "@trigger.dev/core/v3" ;
5+ import { type ExternalBuildData , logger , type GitMeta } from "@trigger.dev/core/v3" ;
66import { TimeoutDeploymentService } from "./timeoutDeployment.server" ;
77import { env } from "~/env.server" ;
8+ import { createRemoteImageBuild } from "../remoteImageBuilder.server" ;
89
910export class DeploymentService extends BaseService {
1011 public startDeployment (
@@ -46,11 +47,29 @@ export class DeploymentService extends BaseService {
4647 return okAsync ( deployment ) ;
4748 } ;
4849
49- const updateDeployment = ( deployment : Pick < WorkerDeployment , "id" > ) =>
50+ const createRemoteBuild = ( deployment : Pick < WorkerDeployment , "id" > ) =>
51+ fromPromise ( createRemoteImageBuild ( authenticatedEnv . project ) , ( error ) => ( {
52+ type : "failed_to_create_remote_build" as const ,
53+ cause : error ,
54+ } ) ) . map ( ( build ) => ( {
55+ id : deployment . id ,
56+ externalBuildData : build ,
57+ } ) ) ;
58+
59+ const updateDeployment = (
60+ deployment : Pick < WorkerDeployment , "id" > & {
61+ externalBuildData : ExternalBuildData | undefined ;
62+ }
63+ ) =>
5064 fromPromise (
5165 this . _prisma . workerDeployment . updateMany ( {
5266 where : { id : deployment . id , status : "PENDING" } , // status could've changed in the meantime, we're not locking the row
53- data : { ...updates , status : "BUILDING" , startedAt : new Date ( ) } ,
67+ data : {
68+ ...updates ,
69+ externalBuildData : deployment . externalBuildData ,
70+ status : "BUILDING" ,
71+ startedAt : new Date ( ) ,
72+ } ,
5473 } ) ,
5574 ( error ) => ( {
5675 type : "other" as const ,
@@ -75,11 +94,13 @@ export class DeploymentService extends BaseService {
7594 type : "failed_to_extend_deployment_timeout" as const ,
7695 cause : error ,
7796 } )
78- ) . map ( ( ) => undefined ) ;
97+ ) ;
7998
8099 return getDeployment ( )
81100 . andThen ( validateDeployment )
101+ . andThen ( createRemoteBuild )
82102 . andThen ( updateDeployment )
83- . andThen ( extendTimeout ) ;
103+ . andThen ( extendTimeout )
104+ . map ( ( ) => undefined ) ;
84105 }
85106}
0 commit comments