Skip to content

Commit 4b522a1

Browse files
Andrea Falzettiakosyakovfelladrin
committed
jetbrains: run warmup as last task
Co-authored-by: Anton Kosyakov <[email protected]> Co-authored-by: Victor Nogueira <[email protected]>
1 parent 756c5b0 commit 4b522a1

16 files changed

+61
-15
lines changed

components/ide-service/pkg/server/testdata/resolve_ws_config_imagebuild.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9"
55
},
66
"Err": ""
7-
}
7+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
"tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/jb-launcher warmup intellij\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/jb-launcher warmup goland\\n\\necho 'warming up latest release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/jb-launcher warmup goland\\n\\necho 'warming up latest release of phpstorm...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/jb-launcher warmup phpstorm\",\"name\":\"GITPOD_JB_WARMUP_TASK\"}]\n"
1515
},
1616
"Err": ""
17-
}
17+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9"
55
},
66
"Err": ""
7-
}
7+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_intellij.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
"tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/jb-launcher warmup intellij\\n\\necho 'warming up latest release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/jb-launcher warmup intellij\",\"name\":\"GITPOD_JB_WARMUP_TASK\"}]\n"
1313
},
1414
"Err": ""
15-
}
15+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_multiple_ide.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
"tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/jb-launcher warmup intellij\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/jb-launcher warmup goland\\n\\necho 'warming up latest release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/jb-launcher warmup goland\\n\\necho 'warming up latest release of phpstorm...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/jb-launcher warmup phpstorm\",\"name\":\"GITPOD_JB_WARMUP_TASK\"}]\n"
1515
},
1616
"Err": ""
17-
}
17+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
"referer_ide": "intellij"
1111
},
1212
"Err": ""
13-
}
13+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw_goland.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
"referer_ide": "goland"
1111
},
1212
"Err": ""
13-
}
13+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw_invalid.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
"referer_ide": "intellij"
1111
},
1212
"Err": ""
13-
}
13+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw_invalid_with_code.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
"referer_ide": "intellij"
1717
},
1818
"Err": ""
19-
}
19+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw_invalid_with_code_desktop.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
"referer_ide": "intellij"
1717
},
1818
"Err": ""
19-
}
19+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_gw_invalid_with_goland.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
"referer_ide": "goland"
1717
},
1818
"Err": ""
19-
}
19+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_referrer_invalid_with_intellij.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
]
1616
},
1717
"Err": ""
18-
}
18+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_regular_intellij.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
]
1616
},
1717
"Err": ""
18-
}
18+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_regular_intellij_latest.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
]
1616
},
1717
"Err": ""
18-
}
18+
}

components/ide-service/pkg/server/testdata/resolve_ws_config_regular_with_intellij_config.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
]
1616
},
1717
"Err": ""
18-
}
18+
}

components/ide/jetbrains/launcher/main.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,27 @@ func main() {
161161
}
162162

163163
if launchCtx.warmup {
164+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
165+
defer cancel()
166+
167+
for {
168+
tasks, err := getTasksList(ctx)
169+
if err != nil {
170+
log.Fatalf("cannot get task list: %s", err)
171+
}
172+
173+
var runningTasksCounter int
174+
for _, task := range tasks {
175+
if task.State != 2 && task.Presentation.Name != "GITPOD_JB_WARMUP_TASK" {
176+
runningTasksCounter++
177+
}
178+
}
179+
if runningTasksCounter == 0 {
180+
break
181+
}
182+
time.Sleep(1 * time.Second)
183+
}
184+
164185
launch(launchCtx)
165186
return
166187
}
@@ -853,3 +874,28 @@ func resolveProjectContextDir(launchCtx *LaunchContext) string {
853874

854875
return launchCtx.projectDir
855876
}
877+
878+
func getTasksList(ctx context.Context) ([]*supervisor.TaskStatus, error) {
879+
conn, err := dial(ctx)
880+
if err != nil {
881+
return nil, err
882+
}
883+
client := supervisor.NewStatusServiceClient(conn)
884+
respClient, err := client.TasksStatus(ctx, &supervisor.TasksStatusRequest{Observe: false})
885+
if err != nil {
886+
return nil, xerrors.Errorf("failed get tasks status client: %w", err)
887+
}
888+
resp, err := respClient.Recv()
889+
if err != nil {
890+
return nil, xerrors.Errorf("failed receive data: %w", err)
891+
}
892+
return resp.GetTasks(), nil
893+
}
894+
895+
func dial(ctx context.Context) (*grpc.ClientConn, error) {
896+
supervisorConn, err := grpc.DialContext(ctx, util.GetSupervisorAddress(), grpc.WithTransportCredentials(insecure.NewCredentials()))
897+
if err != nil {
898+
err = xerrors.Errorf("failed connecting to supervisor: %w", err)
899+
}
900+
return supervisorConn, err
901+
}

0 commit comments

Comments
 (0)