diff --git a/components/BUILD.yaml b/components/BUILD.yaml index 2ade7608a2b088..4fbbe6bb177611 100644 --- a/components/BUILD.yaml +++ b/components/BUILD.yaml @@ -43,6 +43,8 @@ packages: - components/ide/jetbrains/launcher:docker - components/ide/jetbrains/backend-plugin:stable - components/ide/jetbrains/backend-plugin:latest + - components/ide/jetbrains/backend-plugin:stable-rider + - components/ide/jetbrains/backend-plugin:latest-rider - components/ide/jetbrains/image:goland - components/ide/jetbrains/image:goland-latest - components/ide/jetbrains/image:intellij diff --git a/components/ide/gha-update-image/lib/common.ts b/components/ide/gha-update-image/lib/common.ts index bfd96d43828e22..08fae08e03ef2f 100644 --- a/components/ide/gha-update-image/lib/common.ts +++ b/components/ide/gha-update-image/lib/common.ts @@ -153,6 +153,8 @@ export const getLatestInstallerVersions = async (version?: string) => { intellijLatest: versionObj, jbBackendPlugin: versionObj, jbBackendPluginLatest: versionObj, + jbBackendPluginRider: versionObj, + jbBackendPluginLatestRider: versionObj, jbLauncher: versionObj, phpstorm: versionObj, phpstormLatest: versionObj, diff --git a/components/ide/gha-update-image/lib/jb-pin-version.ts b/components/ide/gha-update-image/lib/jb-pin-version.ts index caf5440896072b..939066a77f65c9 100644 --- a/components/ide/gha-update-image/lib/jb-pin-version.ts +++ b/components/ide/gha-update-image/lib/jb-pin-version.ts @@ -31,7 +31,7 @@ export const appendPinVersionsIntoIDEConfigMap = async (updatedIDEs: string[] | for (const [ide, versionObject] of Object.entries(latestInstallerVersions.components.workspace.desktopIdeImages)) { if ( ide.includes("Latest") || - ["codeDesktop", "codeDesktopInsiders", "jbLauncher", "jbBackendPlugin", "jbBackendPluginLatest"].includes( + ["codeDesktop", "codeDesktopInsiders", "jbLauncher", "jbBackendPlugin", "jbBackendPluginLatest", "jbBackendPluginRider", "jbBackendPluginLatestRider"].includes( ide, ) ) { diff --git a/components/ide/jetbrains/backend-plugin/BUILD.yaml b/components/ide/jetbrains/backend-plugin/BUILD.yaml index a284d9fe60f992..3135fbfd5f0244 100644 --- a/components/ide/jetbrains/backend-plugin/BUILD.yaml +++ b/components/ide/jetbrains/backend-plugin/BUILD.yaml @@ -4,6 +4,8 @@ packages: deps: - :stable - :latest + - :stable-rider + - :latest-rider - name: stable type: docker deps: @@ -32,6 +34,34 @@ packages: JETBRAINS_BACKEND_QUALIFIER: latest image: - ${imageRepoBase}/ide/jb-backend-plugin:commit-${__git_commit}-latest + - name: stable-rider + type: docker + deps: + - :plugin-stable-rider + argdeps: + - imageRepoBase + config: + dockerfile: leeway.Dockerfile + metadata: + helm-component: workspace.desktopIdeImages.jbBackendPluginRider + buildArgs: + JETBRAINS_BACKEND_QUALIFIER: stable-rider + image: + - ${imageRepoBase}/ide/jb-backend-plugin:commit-${__git_commit}-rider + - name: latest-rider + type: docker + deps: + - :plugin-latest-rider + argdeps: + - imageRepoBase + config: + dockerfile: leeway.Dockerfile + metadata: + helm-component: workspace.desktopIdeImages.jbBackendPluginLatestRider + buildArgs: + JETBRAINS_BACKEND_QUALIFIER: latest-rider + image: + - ${imageRepoBase}/ide/jb-backend-plugin:commit-${__git_commit}-rider-latest - name: plugin-stable type: generic argdeps: @@ -91,6 +121,70 @@ packages: && source "$SDKMAN_DIR/bin/sdkman-init.sh" && sdk env install && ./build.sh ${__git_commit} + - name: plugin-stable-rider + type: generic + argdeps: + - noVerifyJBPlugin + deps: + - components/supervisor-api/java:lib + - components/gitpod-protocol/java:lib + srcs: + - "**/*.kt" + - "build.gradle-stable.kts" + - "gradle.properties" + - "gradle-stable-rider.properties" + - "gradle/wrapper/*" + - "gradlew" + - "settings.gradle.kts" + - "src/main/resources/*" + - "src/main/resources-stable/*" + - "src/main/resources-rider/*" + - "build.sh" + env: + - JB_QUALIFIER=stable-rider + - NO_VERIFY_JB_PLUGIN=${noVerifyJBPlugin} + config: + commands: + - ["mv", "build.gradle-stable.kts", "build.gradle.kts"] + - ["./build.sh", "${__git_commit}"] + - name: plugin-latest-rider + type: generic + argdeps: + - noVerifyJBPlugin + deps: + - components/supervisor-api/java:lib + - components/gitpod-protocol/java:lib + srcs: + - "**/*.kt" + - "build.gradle-latest.kts" + - "gradle.properties" + - "gradle-latest.properties" + - "gradle-latest-rider.properties" + - "gradle/wrapper/*" + - "gradlew" + - "settings.gradle.kts" + - "src/main/resources/*" + - "src/main/resources-latest/*" + - "src/main/resources-rider/*" + - "build.sh" + env: + # TODO(hw): uncomment next line after Rider fix codeWithMe issue + # - JB_QUALIFIER=latest-rider + - JB_QUALIFIER=latest + - NO_VERIFY_JB_PLUGIN=${noVerifyJBPlugin} + # TODO(hw): remove after `2024.2.*` is stable + - SDKMAN_DIR=/home/gitpod/.sdkman + config: + commands: + # TODO(hw): remove after 2024.2.* is stable + - ["mv", "build.gradle-latest.kts", "build.gradle.kts"] + - - "bash" + - "-c" + - > + echo java=21.0.3.fx-zulu > .sdkmanrc + && source "$SDKMAN_DIR/bin/sdkman-init.sh" + && sdk env install + && ./build.sh ${__git_commit} - name: latest-info type: generic srcs: diff --git a/components/ide/jetbrains/backend-plugin/build.gradle-latest.kts b/components/ide/jetbrains/backend-plugin/build.gradle-latest.kts index b0d9719e78370b..383306d13c38bb 100644 --- a/components/ide/jetbrains/backend-plugin/build.gradle-latest.kts +++ b/components/ide/jetbrains/backend-plugin/build.gradle-latest.kts @@ -36,15 +36,30 @@ project(":") { kotlin { val excludedPackage = if (environmentName == "latest") "stable" else "latest" sourceSets["main"].kotlin.exclude("io/gitpod/jetbrains/remote/${excludedPackage}/**") + + if (properties("platformType") == "RD") { + print("Rider: exclude unnecessary files") + sourceSets["main"].kotlin.exclude("**/GitpodForceUpdateMavenProjectsActivity.kt") + sourceSets["main"].kotlin.exclude("**/maven.xml") + } } sourceSets { main { - resources.srcDirs("src/main/resources-${environmentName}") + resources.srcDirs("src/main/resources") + if (properties("platformType") == "RD") { + print("Rider: import rider source set") + resources.srcDirs("src/main/resources-rider") + } + resources.srcDirs("src/main/resources-${environmentName.replace("-rider", "")}") } } } +tasks.named("processResources") { + duplicatesStrategy = DuplicatesStrategy.WARN +} + // Configure project's dependencies repositories { mavenCentral() diff --git a/components/ide/jetbrains/backend-plugin/build.gradle-stable.kts b/components/ide/jetbrains/backend-plugin/build.gradle-stable.kts index 480699b9258878..810a2b0edeea41 100644 --- a/components/ide/jetbrains/backend-plugin/build.gradle-stable.kts +++ b/components/ide/jetbrains/backend-plugin/build.gradle-stable.kts @@ -34,15 +34,30 @@ project(":") { kotlin { val excludedPackage = if (environmentName == "latest") "stable" else "latest" sourceSets["main"].kotlin.exclude("io/gitpod/jetbrains/remote/${excludedPackage}/**") + + if (properties("platformType") == "RD") { + print("Rider: exclude unnecessary files") + sourceSets["main"].kotlin.exclude("**/GitpodForceUpdateMavenProjectsActivity.kt") + sourceSets["main"].kotlin.exclude("**/maven.xml") + } } sourceSets { main { - resources.srcDirs("src/main/resources-${environmentName}") + resources.srcDirs("src/main/resources") + if (properties("platformType") == "RD") { + print("Rider: import rider source set") + resources.srcDirs("src/main/resources-rider") + } + resources.srcDirs("src/main/resources-${environmentName.replace("-rider", "")}") } } } +tasks.named("processResources") { + duplicatesStrategy = DuplicatesStrategy.WARN +} + // Configure project's dependencies repositories { mavenCentral() @@ -72,6 +87,20 @@ dependencies { implementation("io.grpc:grpc-netty-shaded:1.49.0") } +tasks.withType { + if (properties("platformType") == "RD") { + print("Rider: exclude unnecessary files") + exclude("**/GitpodForceUpdateMavenProjectsActivity.kt") + exclude("**/maven.xml") + } +} + +tasks.named("test") { + onlyIf { + properties("platformType") != "RD" + } +} + // Configure gradle-intellij-plugin plugin. // Read more: https://github.com/JetBrains/gradle-intellij-plugin intellij { diff --git a/components/ide/jetbrains/backend-plugin/build.gradle.kts b/components/ide/jetbrains/backend-plugin/build.gradle.kts index b0d9719e78370b..383306d13c38bb 100644 --- a/components/ide/jetbrains/backend-plugin/build.gradle.kts +++ b/components/ide/jetbrains/backend-plugin/build.gradle.kts @@ -36,15 +36,30 @@ project(":") { kotlin { val excludedPackage = if (environmentName == "latest") "stable" else "latest" sourceSets["main"].kotlin.exclude("io/gitpod/jetbrains/remote/${excludedPackage}/**") + + if (properties("platformType") == "RD") { + print("Rider: exclude unnecessary files") + sourceSets["main"].kotlin.exclude("**/GitpodForceUpdateMavenProjectsActivity.kt") + sourceSets["main"].kotlin.exclude("**/maven.xml") + } } sourceSets { main { - resources.srcDirs("src/main/resources-${environmentName}") + resources.srcDirs("src/main/resources") + if (properties("platformType") == "RD") { + print("Rider: import rider source set") + resources.srcDirs("src/main/resources-rider") + } + resources.srcDirs("src/main/resources-${environmentName.replace("-rider", "")}") } } } +tasks.named("processResources") { + duplicatesStrategy = DuplicatesStrategy.WARN +} + // Configure project's dependencies repositories { mavenCentral() diff --git a/components/ide/jetbrains/backend-plugin/gradle-latest-rider.properties b/components/ide/jetbrains/backend-plugin/gradle-latest-rider.properties new file mode 100644 index 00000000000000..0616bdf6c57c7e --- /dev/null +++ b/components/ide/jetbrains/backend-plugin/gradle-latest-rider.properties @@ -0,0 +1,14 @@ +# Code generated by gha-update-image/index-jb-platform-update.ts. DO NOT EDIT. +# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html +# for insight into build numbers and IntelliJ Platform versions. +pluginSinceBuild=242.19533 +pluginUntilBuild=242.* +# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl +# See https://jb.gg/intellij-platform-builds-list for available build versions. +pluginVerifierIdeVersions=2024.2 +# Version from "com.jetbrains.intellij.idea" which can be found at https://www.jetbrains.com/intellij-repository/snapshots +# platformVersion=242.20224.401 +platformVersion=2024.2 + +platformType=RD +platformBundledPlugins=Git4Idea, org.jetbrains.plugins.terminal, intellij.rider.plugins.cwm diff --git a/components/ide/jetbrains/backend-plugin/gradle-stable-rider.properties b/components/ide/jetbrains/backend-plugin/gradle-stable-rider.properties new file mode 100644 index 00000000000000..578ed647d61e11 --- /dev/null +++ b/components/ide/jetbrains/backend-plugin/gradle-stable-rider.properties @@ -0,0 +1,13 @@ +# this file is auto generated by components/ide/gha-update-image/index-jb.ts +# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html +# for insight into build numbers and IntelliJ Platform versions. +pluginSinceBuild=241.17890 +pluginUntilBuild=241.* +# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl +# See https://jb.gg/intellij-platform-builds-list for available build versions. +pluginVerifierIdeVersions=2024.1 +# Version from "com.jetbrains.intellij.idea" which can be found at https://www.jetbrains.com/intellij-repository/snapshots +platformVersion=2024.1 + +platformType=RD +platformBundledPlugins=Git4Idea, org.jetbrains.plugins.terminal, intellij.rider.plugins.cwm diff --git a/components/ide/jetbrains/backend-plugin/gradle.properties b/components/ide/jetbrains/backend-plugin/gradle.properties index 21cbcefd39e9df..e348979a8261ed 100644 --- a/components/ide/jetbrains/backend-plugin/gradle.properties +++ b/components/ide/jetbrains/backend-plugin/gradle.properties @@ -1,7 +1,7 @@ pluginVersion=0.0.1 gitpodVersion=dev # Supported environments: stable, latest (via https://github.com/stevesaliman/gradle-properties-plugin) -environmentName=latest +environmentName=stable-rider # IntelliJ Platform Artifacts Repositories # -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html pluginGroup=io.gitpod.jetbrains diff --git a/components/ide/jetbrains/backend-plugin/src/main/resources-rider/META-INF/plugin.xml b/components/ide/jetbrains/backend-plugin/src/main/resources-rider/META-INF/plugin.xml new file mode 100644 index 00000000000000..5f84f78fc57d4b --- /dev/null +++ b/components/ide/jetbrains/backend-plugin/src/main/resources-rider/META-INF/plugin.xml @@ -0,0 +1,146 @@ + + + + + + io.gitpod.jetbrains.remote + Gitpod Remote + Gitpod + Provides integrations within a Gitpod workspace. + + + + com.intellij.modules.platform + + + intellij.rider.plugins.cwm + org.jetbrains.plugins.terminal + org.jetbrains.idea.maven + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/install/installer/pkg/components/ide-service/ide-configmap.json b/install/installer/pkg/components/ide-service/ide-configmap.json index 43b9927c618f26..1dcebbebc875c7 100644 --- a/install/installer/pkg/components/ide-service/ide-configmap.json +++ b/install/installer/pkg/components/ide-service/ide-configmap.json @@ -537,14 +537,14 @@ "logo": "{{.IdeLogoBase}}/riderLogo.svg", "image": "{{.Repository}}/ide/rider:{{.WorkspaceVersions.Workspace.DesktopIdeImages.RiderImage.Version}}", "latestImage": "{{.ResolvedJBImageLatest.Rider}}", - "pluginImage": "{{.JetBrainsPluginImage}}", - "pluginLatestImage": "{{.JetBrainsPluginLatestImage}}", + "pluginImage": "{{.JetBrainsPluginRiderImage}}", + "pluginLatestImage": "{{.JetBrainsPluginLatestRiderImage}}", "imageLayers": [ - "{{.JetBrainsPluginImage}}", + "{{.JetBrainsPluginRiderImage}}", "{{.JetBrainsLauncherImage}}" ], "latestImageLayers": [ - "{{.JetBrainsPluginLatestImage}}", + "{{.JetBrainsPluginLatestRiderImage}}", "{{.JetBrainsLauncherImage}}" ], "allowPin": true, diff --git a/install/installer/pkg/components/ide-service/ide_config_configmap.go b/install/installer/pkg/components/ide-service/ide_config_configmap.go index ccefdf37d840a6..023829ceb398bf 100644 --- a/install/installer/pkg/components/ide-service/ide_config_configmap.go +++ b/install/installer/pkg/components/ide-service/ide_config_configmap.go @@ -57,10 +57,12 @@ func GenerateIDEConfigmap(ctx *common.RenderContext) (*ide_config.IDEConfig, err CodeHelperImage string CodeWebExtensionImage string - JetBrainsPluginImage string - JetBrainsPluginLatestImage string - JetBrainsLauncherImage string - ResolvedJBImageLatest JBImages + JetBrainsPluginImage string + JetBrainsPluginLatestImage string + JetBrainsPluginRiderImage string + JetBrainsPluginLatestRiderImage string + JetBrainsLauncherImage string + ResolvedJBImageLatest JBImages WorkspaceVersions versions.Components } @@ -73,9 +75,11 @@ func GenerateIDEConfigmap(ctx *common.RenderContext) (*ide_config.IDEConfig, err CodeHelperImage: ctx.ImageName(ctx.Config.Repository, ide.CodeHelperIDEImage, ctx.VersionManifest.Components.Workspace.CodeHelperImage.Version), CodeWebExtensionImage: ctx.ImageName(ctx.Config.Repository, ide.CodeWebExtensionImage, ctx.VersionManifest.Components.Workspace.CodeWebExtensionImage.Version), - JetBrainsPluginImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginImage.Version), - JetBrainsPluginLatestImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginLatestImage.Version), - JetBrainsLauncherImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsLauncherImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsLauncherImage.Version), + JetBrainsPluginImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginImage.Version), + JetBrainsPluginLatestImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginLatestImage.Version), + JetBrainsPluginRiderImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginRiderImage.Version), + JetBrainsPluginLatestRiderImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsBackendPluginImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsBackendPluginLatestRiderImage.Version), + JetBrainsLauncherImage: ctx.ImageName(ctx.Config.Repository, ide.JetBrainsLauncherImage, ctx.VersionManifest.Components.Workspace.DesktopIdeImages.JetBrainsLauncherImage.Version), ResolvedJBImageLatest: JBImages{ IntelliJ: resolveLatestImage(ide.IntelliJDesktopIDEImage, "latest", ctx.VersionManifest.Components.Workspace.DesktopIdeImages.IntelliJLatestImage), GoLand: resolveLatestImage(ide.GoLandDesktopIdeImage, "latest", ctx.VersionManifest.Components.Workspace.DesktopIdeImages.GoLandLatestImage), diff --git a/install/installer/pkg/config/versions/versions.go b/install/installer/pkg/config/versions/versions.go index 469d361322ccce..81e05fa566e014 100644 --- a/install/installer/pkg/config/versions/versions.go +++ b/install/installer/pkg/config/versions/versions.go @@ -45,29 +45,31 @@ type Components struct { Supervisor Versioned `json:"supervisor"` Workspacekit Versioned `json:"workspacekit"` DesktopIdeImages struct { - CodeDesktopImage Versioned `json:"codeDesktop"` - CodeDesktopImageInsiders Versioned `json:"codeDesktopInsiders"` - IntelliJImage Versioned `json:"intellij"` - IntelliJLatestImage Versioned `json:"intellijLatest"` - GoLandImage Versioned `json:"goland"` - GoLandLatestImage Versioned `json:"golandLatest"` - PyCharmImage Versioned `json:"pycharm"` - PyCharmLatestImage Versioned `json:"pycharmLatest"` - PhpStormImage Versioned `json:"phpstorm"` - PhpStormLatestImage Versioned `json:"phpstormLatest"` - RubyMineImage Versioned `json:"rubymine"` - RubyMineLatestImage Versioned `json:"rubymineLatest"` - WebStormImage Versioned `json:"webstorm"` - WebStormLatestImage Versioned `json:"webstormLatest"` - RiderImage Versioned `json:"rider"` - RiderLatestImage Versioned `json:"riderLatest"` - CLionImage Versioned `json:"clion"` - CLionLatestImage Versioned `json:"clionLatest"` - RustRoverImage Versioned `json:"rustrover"` - RustRoverLatestImage Versioned `json:"rustroverLatest"` - JetBrainsBackendPluginImage Versioned `json:"jbBackendPlugin"` - JetBrainsBackendPluginLatestImage Versioned `json:"jbBackendPluginLatest"` - JetBrainsLauncherImage Versioned `json:"jbLauncher"` + CodeDesktopImage Versioned `json:"codeDesktop"` + CodeDesktopImageInsiders Versioned `json:"codeDesktopInsiders"` + IntelliJImage Versioned `json:"intellij"` + IntelliJLatestImage Versioned `json:"intellijLatest"` + GoLandImage Versioned `json:"goland"` + GoLandLatestImage Versioned `json:"golandLatest"` + PyCharmImage Versioned `json:"pycharm"` + PyCharmLatestImage Versioned `json:"pycharmLatest"` + PhpStormImage Versioned `json:"phpstorm"` + PhpStormLatestImage Versioned `json:"phpstormLatest"` + RubyMineImage Versioned `json:"rubymine"` + RubyMineLatestImage Versioned `json:"rubymineLatest"` + WebStormImage Versioned `json:"webstorm"` + WebStormLatestImage Versioned `json:"webstormLatest"` + RiderImage Versioned `json:"rider"` + RiderLatestImage Versioned `json:"riderLatest"` + CLionImage Versioned `json:"clion"` + CLionLatestImage Versioned `json:"clionLatest"` + RustRoverImage Versioned `json:"rustrover"` + RustRoverLatestImage Versioned `json:"rustroverLatest"` + JetBrainsBackendPluginImage Versioned `json:"jbBackendPlugin"` + JetBrainsBackendPluginLatestImage Versioned `json:"jbBackendPluginLatest"` + JetBrainsBackendPluginRiderImage Versioned `json:"jbBackendPluginRider"` + JetBrainsBackendPluginLatestRiderImage Versioned `json:"jbBackendPluginLatestRider"` + JetBrainsLauncherImage Versioned `json:"jbLauncher"` } `json:"desktopIdeImages"` } `json:"workspace"` WSDaemon struct {