From d48917957f30a6712b6cc35e8a7e2a9f0e5ac917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Rzepecki?= Date: Fri, 21 Aug 2026 14:34:49 +0200 Subject: [PATCH 1/2] build: use the full installer IDE for local dev, ZIP only on CI The multi-OS ZIP distribution is an incomplete runtime: it omits the JBR and native components (JCEF, platform-daemon), which breaks runIde on 2026+ builds locally. Keep the ZIP on CI, where it enables the OS-agnostic shared IDE cache and only headless tests run, but resolve the OS-specific installer locally so runIde has a complete, launchable IDE. Gate on the CI environment variable (always "true" on GitHub Actions) via the existing isCI flag, and log the chosen artifact so the selection is visible in build output rather than silent. Assisted-by: Claude:claude-opus-4-8 --- build.gradle.kts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 82fa6946..d7dd6050 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,6 +64,9 @@ val javaTestCompanionPlugins = listOf( ) val isCI = System.getenv("CI") == "true" +// Make the IDE artifact choice explicit in build logs: CI uses the multi-OS ZIP (see the +// intellijPlatform dependency block), local dev uses the complete OS-specific installer. +logger.lifecycle("IntelliJ Platform IDE artifact: ${if (isCI) "multi-OS ZIP (CI)" else "installer (local)"}") val agentOutputPath = rootProject.layout.buildDirectory.asFile.get() .resolve("appmap-java-agent") .resolve("appmap-agent.jar") @@ -89,14 +92,19 @@ allprojects { val testOutput = configurations.create("testOutput") dependencies { intellijPlatform { - // Use the cross-platform (multi-OS) ZIP distribution instead of the OS-specific - // installer, so the downloaded IDE can be cached once and shared across all OS - // runners. The ZIP bundles no JBR; tests run on the environment JDK (setup-java - // on CI, system JDK locally). + // On CI, resolve the cross-platform (multi-OS) ZIP distribution so the downloaded + // IDE can be cached once and shared across all OS runners (see the IDE cache steps + // in .github/workflows/build.yml). The ZIP is an incomplete runtime distribution: + // it omits the JBR and some native components (JCEF, platform-daemon). That's fine + // for headless tests -- the JBR is resolved separately by Gradle (the OS-specific + // com.jetbrains:jbr artifact, kept in the Gradle cache, not the IDE cache), and the + // missing natives aren't exercised. Locally, use the OS-specific installer, which is + // a complete, runnable IDE (bundled JBR + JCEF + platform-daemon natives), so runIde + // works on recent (2026+) builds where the ZIP fails to launch. when { // 2025.3+ is only available as a unified build - platformVersion >= 253 -> intellijIdea(ideVersion) { useInstaller = false } - else -> intellijIdeaCommunity(ideVersion) { useInstaller = false } + platformVersion >= 253 -> intellijIdea(ideVersion) { useInstaller = !isCI } + else -> intellijIdeaCommunity(ideVersion) { useInstaller = !isCI } } // using "Bundled" to gain access to the Java plugin's test classes @@ -353,10 +361,10 @@ project(":") { // Versions come from gradle-.properties (single source of truth, // shared with the build platform) via ideVersionFor(). create(IntelliJPlatformType.IntellijIdeaCommunity, ideVersionFor(251)) { - useInstaller = false // earliest supported; ZIP to reuse the build's cached IDE + useInstaller = !isCI // earliest supported; match the build's IDE artifact (ZIP on CI) } create(IntelliJPlatformType.IntellijIdea, ideVersionFor(262)) { - useInstaller = false // latest released; ZIP to reuse the build's cached IDE + useInstaller = !isCI // latest released; match the build's IDE artifact (ZIP on CI) } } From 8621a59dc6a5a2e08803d297f176e99df8cce167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Rzepecki?= Date: Fri, 21 Aug 2026 14:34:54 +0200 Subject: [PATCH 2/2] build: bump IntelliJ 262 target to 2026.2.1 --- gradle-262.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-262.properties b/gradle-262.properties index cc78ac99..ff1d9f22 100644 --- a/gradle-262.properties +++ b/gradle-262.properties @@ -1 +1 @@ -ideVersion=2026.2.0.1 +ideVersion=2026.2.1