From 18201ea0fa3e3d23d7527c8b4921bff993bf533d Mon Sep 17 00:00:00 2001 From: Andrea Falzetti Date: Thu, 8 Dec 2022 10:24:24 +0000 Subject: [PATCH] fix tests for ide service --- components/ide-service/pkg/server/server.go | 162 ++++++++++-------- .../resolve_ws_config_imagebuild.golden | 8 +- .../testdata/resolve_ws_config_prebuild.json | 6 - .../resolve_ws_config_prebuild_code.golden | 16 ++ .../resolve_ws_config_prebuild_code.json | 6 + ...> resolve_ws_config_prebuild_empty.golden} | 8 +- .../resolve_ws_config_prebuild_empty.json | 6 + ...resolve_ws_config_prebuild_intellij.golden | 12 +- ...lve_ws_config_prebuild_multiple_ide.golden | 14 +- 9 files changed, 131 insertions(+), 107 deletions(-) delete mode 100644 components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.json create mode 100644 components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.golden create mode 100644 components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.json rename components/ide-service/pkg/server/testdata/{resolve_ws_config_prebuild.golden => resolve_ws_config_prebuild_empty.golden} (66%) create mode 100644 components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.json diff --git a/components/ide-service/pkg/server/server.go b/components/ide-service/pkg/server/server.go index fb85706ef31cc3..b75ba19772e474 100644 --- a/components/ide-service/pkg/server/server.go +++ b/components/ide-service/pkg/server/server.go @@ -250,123 +250,142 @@ func (s *IDEServiceServer) ResolveWorkspaceConfig(ctx context.Context, req *api. WebImage: defaultIde.Image, } - // TODO: reconsider this - // if req.Type != api.WorkspaceType_REGULAR { - // return resp, nil - // } - var wsConfig *gitpodapi.GitpodConfig - var wsContext *WorkspaceContext - var ideSettings *IDESettings - if req.IdeSettings != "" { - if err := json.Unmarshal([]byte(req.IdeSettings), &ideSettings); err != nil { - log.WithError(err).WithField("ideSetting", req.IdeSettings).Error("failed to parse ide settings") - } - } if req.WorkspaceConfig != "" { if err := json.Unmarshal([]byte(req.WorkspaceConfig), &wsConfig); err != nil { log.WithError(err).WithField("workspaceConfig", req.WorkspaceConfig).Error("failed to parse workspace config") } } - if req.Context != "" { - if err := json.Unmarshal([]byte(req.Context), &wsContext); err != nil { - log.WithError(err).WithField("context", req.Context).Error("failed to parse context") - } - } - userIdeName := "" - useLatest := false + if req.Type == api.WorkspaceType_REGULAR { + var ideSettings *IDESettings + var wsContext *WorkspaceContext - if ideSettings != nil { - userIdeName = ideSettings.DefaultIde - useLatest = ideSettings.UseLatestVersion - } + if req.IdeSettings != "" { + if err := json.Unmarshal([]byte(req.IdeSettings), &ideSettings); err != nil { + log.WithError(err).WithField("ideSetting", req.IdeSettings).Error("failed to parse ide settings") + } + } - chosenIDE := defaultIde + if req.Context != "" { + if err := json.Unmarshal([]byte(req.Context), &wsContext); err != nil { + log.WithError(err).WithField("context", req.Context).Error("failed to parse context") + } + } - getUserIDEImage := func(ideOption *config.IDEOption) string { - if useLatest && ideOption.LatestImage != "" { - return ideOption.LatestImage + userIdeName := "" + useLatest := false + + if ideSettings != nil { + userIdeName = ideSettings.DefaultIde + useLatest = ideSettings.UseLatestVersion } - return ideOption.Image - } + chosenIDE := defaultIde - getUserPluginImage := func(ideOption *config.IDEOption) string { - if useLatest && ideOption.PluginLatestImage != "" { - return ideOption.PluginLatestImage + getUserIDEImage := func(ideOption *config.IDEOption) string { + if useLatest && ideOption.LatestImage != "" { + return ideOption.LatestImage + } + + return ideOption.Image } - return ideOption.PluginImage - } + getUserPluginImage := func(ideOption *config.IDEOption) string { + if useLatest && ideOption.PluginLatestImage != "" { + return ideOption.PluginLatestImage + } - if userIdeName != "" { - if ide, ok := ideConfig.IdeOptions.Options[userIdeName]; ok { - chosenIDE = &ide + return ideOption.PluginImage + } + + if userIdeName != "" { + if ide, ok := ideConfig.IdeOptions.Options[userIdeName]; ok { + chosenIDE = &ide - // TODO: Currently this variable reflects the IDE selected in - // user's settings for backward compatibility but in the future - // we want to make it represent the actual IDE. - ideAlias := api.EnvironmentVariable{ - Name: "GITPOD_IDE_ALIAS", - Value: userIdeName, + // TODO: Currently this variable reflects the IDE selected in + // user's settings for backward compatibility but in the future + // we want to make it represent the actual IDE. + ideAlias := api.EnvironmentVariable{ + Name: "GITPOD_IDE_ALIAS", + Value: userIdeName, + } + resp.Envvars = append(resp.Envvars, &ideAlias) } - resp.Envvars = append(resp.Envvars, &ideAlias) } - } - // we always need WebImage for when the user chooses a desktop ide - resp.WebImage = getUserIDEImage(defaultIde) + // we always need WebImage for when the user chooses a desktop ide + resp.WebImage = getUserIDEImage(defaultIde) - var desktopImageLayer string - var desktopPluginImageLayer string - if chosenIDE.Type == config.IDETypeDesktop { - desktopImageLayer = getUserIDEImage(chosenIDE) - desktopPluginImageLayer = getUserPluginImage(chosenIDE) - } else { - resp.WebImage = getUserIDEImage(chosenIDE) - } + var desktopImageLayer string + var desktopPluginImageLayer string + if chosenIDE.Type == config.IDETypeDesktop { + desktopImageLayer = getUserIDEImage(chosenIDE) + desktopPluginImageLayer = getUserPluginImage(chosenIDE) + } else { + resp.WebImage = getUserIDEImage(chosenIDE) + } - ideName, referrer := s.resolveReferrerIDE(ideConfig, wsContext, userIdeName) - if ideName != "" { - resp.RefererIde = ideName - desktopImageLayer = getUserIDEImage(referrer) - desktopPluginImageLayer = getUserPluginImage(referrer) - } + ideName, referrer := s.resolveReferrerIDE(ideConfig, wsContext, userIdeName) + if ideName != "" { + resp.RefererIde = ideName + desktopImageLayer = getUserIDEImage(referrer) + desktopPluginImageLayer = getUserPluginImage(referrer) + } - if desktopImageLayer != "" { - resp.IdeImageLayers = append(resp.IdeImageLayers, desktopImageLayer) - if desktopPluginImageLayer != "" { - resp.IdeImageLayers = append(resp.IdeImageLayers, desktopPluginImageLayer) + if desktopImageLayer != "" { + resp.IdeImageLayers = append(resp.IdeImageLayers, desktopImageLayer) + if desktopPluginImageLayer != "" { + resp.IdeImageLayers = append(resp.IdeImageLayers, desktopPluginImageLayer) + } } } jbGW, ok := ideConfig.IdeOptions.Clients["jetbrains-gateway"] if req.Type == api.WorkspaceType_PREBUILD && ok { warmUpTask := "" + var pluginStableImage string + var pluginLatestImage string for _, alias := range jbGW.DesktopIDEs { prebuilds := getPrebuilds(wsConfig, alias) if prebuilds != nil { if prebuilds.Version != "latest" { - template := ` + if ide, ok := ideConfig.IdeOptions.Options[alias]; ok { + pluginStableImage = ide.PluginImage + resp.IdeImageLayers = append(resp.IdeImageLayers, ide.Image) + template := ` echo 'warming up stable release of ${key}...' JETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/${key}/status warmup ${key} ` - template = strings.ReplaceAll(template, "${key}", alias) - warmUpTask += template + template = strings.ReplaceAll(template, "${key}", alias) + warmUpTask += template + } } if prebuilds.Version != "stable" { - template := ` + if ide, ok := ideConfig.IdeOptions.Options[alias]; ok { + pluginLatestImage = ide.PluginLatestImage + resp.IdeImageLayers = append(resp.IdeImageLayers, ide.LatestImage) + template := ` echo 'warming up stable release of ${key}...' JETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/${key}-latest/status warmup ${key} ` - template = strings.ReplaceAll(template, "${key}", alias) - warmUpTask += template + template = strings.ReplaceAll(template, "${key}", alias) + warmUpTask += template + } } } } + + if pluginStableImage != "" { + resp.IdeImageLayers = append(resp.IdeImageLayers, pluginStableImage) + } + + if pluginLatestImage != "" { + resp.IdeImageLayers = append(resp.IdeImageLayers, pluginLatestImage) + } + if warmUpTask != "" { warmUpEncoded := new(bytes.Buffer) enc := json.NewEncoder(warmUpEncoded) @@ -382,6 +401,7 @@ JETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/${key}-latest/status warmup ${ke resp.Tasks = warmUpEncoded.String() } } + return } diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_imagebuild.golden b/components/ide-service/pkg/server/testdata/resolve_ws_config_imagebuild.golden index 22e8d5a9e166fc..d4ab298f485431 100644 --- a/components/ide-service/pkg/server/testdata/resolve_ws_config_imagebuild.golden +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_imagebuild.golden @@ -1,13 +1,7 @@ { "Resp": { - "envvars": [ - { - "name": "GITPOD_IDE_ALIAS", - "value": "code" - } - ], "supervisor_image": "eu.gcr.io/gitpod-core-dev/build/supervisor:commit-ff38b98b7dde4929159bcaeec68d178898dc2139", "web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9" }, "Err": "" -} \ No newline at end of file +} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.json b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.json deleted file mode 100644 index 6504c0e5bfc45a..00000000000000 --- a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": 1, - "context": "{\"ref\":\"jb-proxy-test\",\"refType\":\"branch\",\"isFile\":false,\"path\":\"\",\"title\":\"andreafalzetti/parcel-demo - jb-proxy-test\",\"revision\":\"3e5e8ce8e2133d9b82259f978cfd10e5b68cc9b4\",\"repository\":{\"cloneUrl\":\"https://github.com/andreafalzetti/parcel-demo.git\",\"host\":\"github.com\",\"name\":\"parcel-demo\",\"owner\":\"andreafalzetti\",\"private\":false,\"fork\":{\"parent\":{\"cloneUrl\":\"https://github.com/akosyakov/parcel-demo.git\",\"host\":\"github.com\",\"name\":\"parcel-demo\",\"owner\":\"akosyakov\",\"private\":false}}},\"normalizedContextURL\":\"https://github.com/andreafalzetti/parcel-demo/tree/jb-proxy-test\",\"checkoutLocation\":\"parcel-demo\",\"upstreamRemoteURI\":\"https://github.com/akosyakov/parcel-demo.git\"}", - "ide_settings": "{\"settingVersion\":\"2.0\",\"defaultIde\":\"code\",\"useLatestVersion\":false}", - "workspace_config": "{\"image\":\"gitpod/workspace-dotnet:latest\",\"tasks\":[{\"command\":\"sudo tinyproxy\\nsudo tail -f /var/log/tinyproxy/tinyproxy.log\\n\"}],\"jetbrains\":{\"intellij\":{\"vmoptions\":\"-Didea.log.debug.categories=#com.intellij.util\",\"plugins\":[\"com.haulmont.jpab\"]}},\"_origin\":\"repo\",\"vscode\":{\"extensions\":[]}}" -} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.golden b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.golden new file mode 100644 index 00000000000000..12f0a4021a1309 --- /dev/null +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.golden @@ -0,0 +1,16 @@ +{ + "Resp": { + "supervisor_image": "eu.gcr.io/gitpod-core-dev/build/supervisor:commit-ff38b98b7dde4929159bcaeec68d178898dc2139", + "web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9", + "ide_image_layers": [ + "eu.gcr.io/gitpod-core-dev/build/ide/intellij:commit-9a6c79a91b2b1f583d5bcb7f9f1ef54ee977e0df", + "eu.gcr.io/gitpod-core-dev/build/ide/goland:commit-9a6c79a91b2b1f583d5bcb7f9f1ef54ee977e0df", + "eu.gcr.io/gitpod-core-dev/build/ide/goland:latest@sha256:e07524e52089829dc8d3b38f7d18fb51b24f07aed7d8e4e6e447899687978d43", + "eu.gcr.io/gitpod-core-dev/build/ide/phpstorm:latest@sha256:e07524e52089829dc8d3b38f7d18fb51b24f07aed7d8e4e6e447899687978d43", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a-latest" + ], + "tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/intellij/status warmup intellij\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/goland/status warmup goland\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/goland-latest/status warmup goland\\n\\necho 'warming up stable release of phpstorm...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/phpstorm-latest/status warmup phpstorm\"}]\n" + }, + "Err": "" +} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.json b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.json new file mode 100644 index 00000000000000..6a9897f315d495 --- /dev/null +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_code.json @@ -0,0 +1,6 @@ +{ + "type": 1, + "context": "{\"isFile\":false,\"path\":\"\",\"title\":\"gitpod-io/empty \",\"revision\":\"\",\"repository\":{\"cloneUrl\":\"https://github.com/gitpod-io/empty.git\",\"host\":\"github.com\",\"name\":\"empty\",\"owner\":\"gitpod-io\",\"private\":false},\"normalizedContextURL\":\"https://github.com/gitpod-io/empty\",\"checkoutLocation\":\"empty\"}", + "ide_settings": "{\"settingVersion\":\"2.0\",\"defaultIde\":\"code-desktop\",\"useLatestVersion\":false}", + "workspace_config": "{\"tasks\":[{\"init\":\"echo 'init script'\",\"command\":\"echo 'start script'\"}],\"jetbrains\":{\"intellij\":{\"prebuilds\":{\"version\":\"stable\"}},\"phpstorm\":{\"prebuilds\":{\"version\":\"latest\"}},\"goland\":{\"prebuilds\":{\"version\":\"both\"}}},\"_origin\":\"repo\",\"image\":\"docker.io/gitpod/workspace-full:latest\",\"vscode\":{\"extensions\":[]}}" +} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.golden b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.golden similarity index 66% rename from components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.golden rename to components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.golden index 22e8d5a9e166fc..d4ab298f485431 100644 --- a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild.golden +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.golden @@ -1,13 +1,7 @@ { "Resp": { - "envvars": [ - { - "name": "GITPOD_IDE_ALIAS", - "value": "code" - } - ], "supervisor_image": "eu.gcr.io/gitpod-core-dev/build/supervisor:commit-ff38b98b7dde4929159bcaeec68d178898dc2139", "web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9" }, "Err": "" -} \ No newline at end of file +} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.json b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.json new file mode 100644 index 00000000000000..f9840f5e08b653 --- /dev/null +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_empty.json @@ -0,0 +1,6 @@ +{ + "type": 1, + "context": "{\"isFile\":false,\"path\":\"\",\"title\":\"gitpod-io/empty \",\"revision\":\"\",\"repository\":{\"cloneUrl\":\"https://github.com/gitpod-io/empty.git\",\"host\":\"github.com\",\"name\":\"empty\",\"owner\":\"gitpod-io\",\"private\":false},\"normalizedContextURL\":\"https://github.com/gitpod-io/empty\",\"checkoutLocation\":\"empty\"}", + "ide_settings": "{\"settingVersion\":\"2.0\",\"defaultIde\":\"intellj\",\"useLatestVersion\":false}", + "workspace_config": "{\"tasks\":[{\"init\":\"echo 'init script'\",\"command\":\"echo 'start script'\"}],\"_origin\":\"repo\",\"image\":\"docker.io/gitpod/workspace-full:latest\",\"vscode\":{\"extensions\":[]}}" +} diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_intellij.golden b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_intellij.golden index a215710cbccba0..0d0db230a943c7 100644 --- a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_intellij.golden +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_intellij.golden @@ -1,18 +1,14 @@ { "Resp": { - "envvars": [ - { - "name": "GITPOD_IDE_ALIAS", - "value": "intellij" - } - ], "supervisor_image": "eu.gcr.io/gitpod-core-dev/build/supervisor:commit-ff38b98b7dde4929159bcaeec68d178898dc2139", "web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9", "ide_image_layers": [ "eu.gcr.io/gitpod-core-dev/build/ide/intellij:commit-9a6c79a91b2b1f583d5bcb7f9f1ef54ee977e0df", - "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a" + "eu.gcr.io/gitpod-core-dev/build/ide/intellij:latest@sha256:e07524e52089829dc8d3b38f7d18fb51b24f07aed7d8e4e6e447899687978d43", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a-latest" ], - "tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\necho 'downloading stable intellij backend...'\\nmkdir /tmp/backend\\ncurl -sSLo /tmp/backend/backend.tar.gz \\\"https://download.jetbrains.com/product?type=release\u0026distribution=linux\u0026code=IIU\\\"\\ntar -xf /tmp/backend/backend.tar.gz --strip-components=1 --directory /tmp/backend\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains\\n\\necho 'running stable intellij backend in warmup mode...'\\n/tmp/backend/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing stable intellij backend...'\\nrm -rf /tmp/backend\\n\\necho 'warming up latest release of intellij...'\\necho 'downloading latest intellij backend...'\\nmkdir /tmp/backend-latest\\ncurl -sSLo /tmp/backend-latest/backend-latest.tar.gz \\\"https://download.jetbrains.com/product?type=release,eap,rc\u0026distribution=linux\u0026code=IIU\\\"\\ntar -xf /tmp/backend-latest/backend-latest.tar.gz --strip-components=1 --directory /tmp/backend-latest\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend-latest/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains-latest\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains-latest\\n\\necho 'running intellij backend in warmup mode...'\\n/tmp/backend-latest/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing latest intellij backend...'\\nrm -rf /tmp/backend-latest\"}]\n" + "tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/intellij/status warmup intellij\\n\\necho 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/intellij-latest/status warmup intellij\"}]\n" }, "Err": "" } diff --git a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_multiple_ide.golden b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_multiple_ide.golden index 462e7385c415fd..12f0a4021a1309 100644 --- a/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_multiple_ide.golden +++ b/components/ide-service/pkg/server/testdata/resolve_ws_config_prebuild_multiple_ide.golden @@ -1,18 +1,16 @@ { "Resp": { - "envvars": [ - { - "name": "GITPOD_IDE_ALIAS", - "value": "intellij" - } - ], "supervisor_image": "eu.gcr.io/gitpod-core-dev/build/supervisor:commit-ff38b98b7dde4929159bcaeec68d178898dc2139", "web_image": "eu.gcr.io/gitpod-core-dev/build/ide/code:commit-d6329814c2aa34c414574fd0d1301447d6fe82c9", "ide_image_layers": [ "eu.gcr.io/gitpod-core-dev/build/ide/intellij:commit-9a6c79a91b2b1f583d5bcb7f9f1ef54ee977e0df", - "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a" + "eu.gcr.io/gitpod-core-dev/build/ide/goland:commit-9a6c79a91b2b1f583d5bcb7f9f1ef54ee977e0df", + "eu.gcr.io/gitpod-core-dev/build/ide/goland:latest@sha256:e07524e52089829dc8d3b38f7d18fb51b24f07aed7d8e4e6e447899687978d43", + "eu.gcr.io/gitpod-core-dev/build/ide/phpstorm:latest@sha256:e07524e52089829dc8d3b38f7d18fb51b24f07aed7d8e4e6e447899687978d43", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a", + "eu.gcr.io/gitpod-core-dev/build/ide/jb-backend-plugin:commit-b38092639d1783a1957894ddd4f492b3cdc9794a-latest" ], - "tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\necho 'downloading stable intellij backend...'\\nmkdir /tmp/backend\\ncurl -sSLo /tmp/backend/backend.tar.gz \\\"https://download.jetbrains.com/product?type=release\u0026distribution=linux\u0026code=IIU\\\"\\ntar -xf /tmp/backend/backend.tar.gz --strip-components=1 --directory /tmp/backend\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains\\n\\necho 'running stable intellij backend in warmup mode...'\\n/tmp/backend/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing stable intellij backend...'\\nrm -rf /tmp/backend\\n\\necho 'warming up stable release of goland...'\\necho 'downloading stable goland backend...'\\nmkdir /tmp/backend\\ncurl -sSLo /tmp/backend/backend.tar.gz \\\"https://download.jetbrains.com/product?type=release\u0026distribution=linux\u0026code=GO\\\"\\ntar -xf /tmp/backend/backend.tar.gz --strip-components=1 --directory /tmp/backend\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains\\n\\necho 'running stable goland backend in warmup mode...'\\n/tmp/backend/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing stable goland backend...'\\nrm -rf /tmp/backend\\n\\necho 'warming up latest release of goland...'\\necho 'downloading latest goland backend...'\\nmkdir /tmp/backend-latest\\ncurl -sSLo /tmp/backend-latest/backend-latest.tar.gz \\\"https://download.jetbrains.com/product?type=release,eap,rc\u0026distribution=linux\u0026code=GO\\\"\\ntar -xf /tmp/backend-latest/backend-latest.tar.gz --strip-components=1 --directory /tmp/backend-latest\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend-latest/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains-latest\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains-latest\\n\\necho 'running goland backend in warmup mode...'\\n/tmp/backend-latest/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing latest goland backend...'\\nrm -rf /tmp/backend-latest\\n\\necho 'warming up latest release of phpstorm...'\\necho 'downloading latest phpstorm backend...'\\nmkdir /tmp/backend-latest\\ncurl -sSLo /tmp/backend-latest/backend-latest.tar.gz \\\"https://download.jetbrains.com/product?type=release,eap,rc\u0026distribution=linux\u0026code=PS\\\"\\ntar -xf /tmp/backend-latest/backend-latest.tar.gz --strip-components=1 --directory /tmp/backend-latest\\n\\necho 'configuring JB system config and caches aligned with runtime...'\\nprintf '\\\\nshared.indexes.download.auto.consent=true' \u003e\u003e \\\"/tmp/backend-latest/bin/idea.properties\\\"\\nunset JAVA_TOOL_OPTIONS\\nexport IJ_HOST_CONFIG_BASE_DIR=/workspace/.config/JetBrains-latest\\nexport IJ_HOST_SYSTEM_BASE_DIR=/workspace/.cache/JetBrains-latest\\n\\necho 'running phpstorm backend in warmup mode...'\\n/tmp/backend-latest/bin/remote-dev-server.sh warmup \\\"$GITPOD_REPO_ROOT\\\"\\n\\necho 'removing latest phpstorm backend...'\\nrm -rf /tmp/backend-latest\"}]\n" + "tasks": "[{\"init\":\"echo 'warming up stable release of intellij...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/intellij/status warmup intellij\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=stable /ide-desktop/goland/status warmup goland\\n\\necho 'warming up stable release of goland...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/goland-latest/status warmup goland\\n\\necho 'warming up stable release of phpstorm...'\\nJETBRAINS_BACKEND_QUALIFIER=latest /ide-desktop/phpstorm-latest/status warmup phpstorm\"}]\n" }, "Err": "" }