diff --git a/.github/workflows/jetbrains-updates.yml b/.github/workflows/jetbrains-updates.yml index 544d51929305a5..30bb50c8084875 100644 --- a/.github/workflows/jetbrains-updates.yml +++ b/.github/workflows/jetbrains-updates.yml @@ -27,3 +27,10 @@ jobs: productId: pycharm productCode: PCP productType: release + phpstorm: + uses: gitpod-io/gitpod/.github/workflows/jetbrains-updates-template.yml@main + with: + productName: PhpStorm + productId: phpstorm + productCode: PS + productType: release diff --git a/chart/templates/server-ide-configmap.yaml b/chart/templates/server-ide-configmap.yaml index 289289783d4523..6d4fdcf4e62a2f 100644 --- a/chart/templates/server-ide-configmap.yaml +++ b/chart/templates/server-ide-configmap.yaml @@ -101,6 +101,13 @@ options: logo: "https://upload.wikimedia.org/wikipedia/commons/1/1d/PyCharm_Icon.svg" notes: ["While in beta, when you open a workspace with PyCharm you will need to use the password “gitpod”."] image: {{ (include "gitpod.comp.imageFull" (dict "root" $ "gp" $gp "comp" $gp.components.workspace.desktopIdeImages.pycharm)) }} + phpstorm: + orderKey: "07" + title: "PhpStorm" + type: "desktop" + logo: "https://upload.wikimedia.org/wikipedia/commons/c/c9/PhpStorm_Icon.svg" + notes: ["While in beta, when you open a workspace with PhpStorm you will need to use the password “gitpod”."] + image: {{ (include "gitpod.comp.imageFull" (dict "root" $ "gp" $gp "comp" $gp.components.workspace.desktopIdeImages.phpstorm)) }} defaultIde: "code" defaultDesktopIde: "code-desktop" diff --git a/chart/values.yaml b/chart/values.yaml index 6ef6bc462c08dd..b2266ca4086cf0 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -412,6 +412,8 @@ components: imageName: "ide/goland" pycharm: imageName: "ide/pycharm" + phpstorm: + imageName: "ide/phpstorm" supervisor: imageName: "supervisor" dockerUp: diff --git a/components/BUILD.yaml b/components/BUILD.yaml index f5d4b9e8a95c60..39cee4aab67804 100644 --- a/components/BUILD.yaml +++ b/components/BUILD.yaml @@ -45,6 +45,7 @@ packages: - components/ide/jetbrains/image:intellij - components/ide/jetbrains/image:goland - components/ide/jetbrains/image:pycharm + - components/ide/jetbrains/image:phpstorm - components/ide/theia:docker - components/image-builder:docker - components/image-builder-mk3:docker diff --git a/components/ide/jetbrains/image/BUILD.yaml b/components/ide/jetbrains/image/BUILD.yaml index 24e286a1564a7c..bc901bce22e3a3 100644 --- a/components/ide/jetbrains/image/BUILD.yaml +++ b/components/ide/jetbrains/image/BUILD.yaml @@ -7,6 +7,8 @@ packages: - :intellij - :goland - :pycharm + - :phpstorm + - name: intellij type: docker srcs: @@ -28,6 +30,7 @@ packages: image: - ${imageRepoBase}/ide/intellij:${version} - ${imageRepoBase}/ide/intellij:commit-${__git_commit} + - name: goland type: docker srcs: @@ -49,6 +52,7 @@ packages: image: - ${imageRepoBase}/ide/goland:${version} - ${imageRepoBase}/ide/goland:commit-${__git_commit} + - name: pycharm type: docker srcs: @@ -70,3 +74,25 @@ packages: image: - ${imageRepoBase}/ide/pycharm:${version} - ${imageRepoBase}/ide/pycharm:commit-${__git_commit} + + - name: phpstorm + type: docker + srcs: + - "startup.sh" + - "supervisor-ide-config_phpstorm.json" + - "status/go.mod" + - "status/main.go" + deps: + - components/ide/jetbrains/backend-plugin:plugin + argdeps: + - imageRepoBase + config: + dockerfile: leeway.Dockerfile + metadata: + helm-component: workspace.desktopIdeImages.phpstorm + buildArgs: + JETBRAINS_BACKEND_URL: "https://download.jetbrains.com/webide/PhpStorm-2021.3.tar.gz" + SUPERVISOR_IDE_CONFIG: supervisor-ide-config_phpstorm.json + image: + - ${imageRepoBase}/ide/phpstorm:${version} + - ${imageRepoBase}/ide/phpstorm:commit-${__git_commit} diff --git a/components/ide/jetbrains/image/supervisor-ide-config_phpstorm.json b/components/ide/jetbrains/image/supervisor-ide-config_phpstorm.json new file mode 100644 index 00000000000000..961e809bc15710 --- /dev/null +++ b/components/ide/jetbrains/image/supervisor-ide-config_phpstorm.json @@ -0,0 +1,11 @@ +{ + "entrypoint": "/ide-desktop/startup.sh", + "entrypointArgs": [ "Open in PhpStorm" ], + "readinessProbe": { + "type": "http", + "http": { + "port": 24000, + "path": "/status" + } + } +} diff --git a/installer/pkg/components/server/ide-configmap.go b/installer/pkg/components/server/ide-configmap.go index 99cd3ed63dbfc8..57c1f211886714 100644 --- a/installer/pkg/components/server/ide-configmap.go +++ b/installer/pkg/components/server/ide-configmap.go @@ -99,7 +99,15 @@ func ideconfigmap(ctx *common.RenderContext) ([]runtime.Object, error) { Type: typeDesktop, Logo: "https://upload.wikimedia.org/wikipedia/commons/1/1d/PyCharm_Icon.svg", // TODO(clu): Serve logo from our own components instead of using this wikimedia URL. Notes: []string{"While in beta, when you open a workspace with PyCharm you will need to use the password “gitpod”."}, - Image: common.ImageName(ctx.Config.Repository, workspace.PyCharmDesktopIdeImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.GoLandImage.Version), + Image: common.ImageName(ctx.Config.Repository, workspace.PyCharmDesktopIdeImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.PyCharmImage.Version), + }, + "phpstorm": { + OrderKey: pointer.String("07"), + Title: "PhpStorm", + Type: typeDesktop, + Logo: "https://upload.wikimedia.org/wikipedia/commons/c/c9/PhpStorm_Icon.svg", // TODO(clu): Serve logo from our own components instead of using this wikimedia URL. + Notes: []string{"While in beta, when you open a workspace with PhpStorm you will need to use the password “gitpod”."}, + Image: common.ImageName(ctx.Config.Repository, workspace.PhpStormDesktopIdeImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.PhpStormImage.Version), }, }, DefaultIDE: "code", diff --git a/installer/pkg/components/workspace/constants.go b/installer/pkg/components/workspace/constants.go index 94d6fae05e8e3a..5adce58ff9343d 100644 --- a/installer/pkg/components/workspace/constants.go +++ b/installer/pkg/components/workspace/constants.go @@ -16,6 +16,7 @@ const ( IntelliJDesktopIDEImage = "ide/intellij" GoLandDesktopIdeImage = "ide/goland" PyCharmDesktopIdeImage = "ide/pycharm" + PhpStormDesktopIdeImage = "ide/phpstorm" DockerUpImage = "docker-up" SupervisorImage = "supervisor" SupervisorPort = 22999 diff --git a/installer/pkg/config/versions/versions.go b/installer/pkg/config/versions/versions.go index d8ede8f01a43a7..b7e8cbe77e89af 100644 --- a/installer/pkg/config/versions/versions.go +++ b/installer/pkg/config/versions/versions.go @@ -44,6 +44,7 @@ type Components struct { IntelliJImage Versioned `json:"intellij"` GoLandImage Versioned `json:"goland"` PyCharmImage Versioned `json:"pycharm"` + PhpStormImage Versioned `json:"phpstorm"` } `json:"desktopIdeImages"` } `json:"workspace"` WSDaemon struct {