@@ -31,6 +31,8 @@ import { secondsBefore } from "@gitpod/gitpod-protocol/lib/util/timeutil";
31
31
32
32
import { inject , injectable } from "inversify" ;
33
33
import * as opentracing from "opentracing" ;
34
+ import { StopWorkspacePolicy } from "@gitpod/ws-manager/lib" ;
35
+ import { error } from "console" ;
34
36
35
37
export class WorkspaceRunningError extends Error {
36
38
constructor ( msg : string , public instance : WorkspaceInstance ) {
@@ -66,16 +68,27 @@ export class PrebuildManager {
66
68
. findActivePrebuiltWorkspacesByBranch ( project . id , branch ) ;
67
69
const results : Promise < any > [ ] = [ ] ;
68
70
for ( const prebuild of prebuilds ) {
69
- for ( const instance of prebuild . instances ) {
70
- log . info (
71
- { userId : user . id , instanceId : instance . id , workspaceId : instance . workspaceId } ,
72
- "Aborting Prebuild workspace because a newer commit was pushed to the same branch." ,
73
- ) ;
74
- results . push ( this . workspaceStarter . stopWorkspaceInstance ( { span } , instance . id , instance . region ) ) ;
71
+ try {
72
+ for ( const instance of prebuild . instances ) {
73
+ log . info (
74
+ { userId : user . id , instanceId : instance . id , workspaceId : instance . workspaceId } ,
75
+ "Aborting Prebuild workspace because a newer commit was pushed to the same branch." ,
76
+ ) ;
77
+ results . push (
78
+ this . workspaceStarter . stopWorkspaceInstance (
79
+ { span } ,
80
+ instance . id ,
81
+ instance . region ,
82
+ StopWorkspacePolicy . ABORT ,
83
+ ) ,
84
+ ) ;
85
+ }
86
+ prebuild . prebuild . state = "aborted" ;
87
+ prebuild . prebuild . error = "A newer commit was pushed to the same branch." ;
88
+ results . push ( this . workspaceDB . trace ( { span } ) . storePrebuiltWorkspace ( prebuild . prebuild ) ) ;
89
+ } catch ( err ) {
90
+ error ( "Cannot cancel prebuild" , { prebuildID : prebuild . prebuild . id } , err ) ;
75
91
}
76
- prebuild . prebuild . state = "aborted" ;
77
- prebuild . prebuild . error = "A newer commit was pushed to the same branch." ;
78
- results . push ( this . workspaceDB . trace ( { span } ) . storePrebuiltWorkspace ( prebuild . prebuild ) ) ;
79
92
}
80
93
await Promise . all ( results ) ;
81
94
} finally {
0 commit comments