The plugin has no CI — nothing builds or runs the parser tests on push.
The build is already CI-ready. In plugin/build.gradle.kts:
val localIde = providers.gradleProperty("localIdePath").orNull
if (localIde != null) local(localIde) else intellijIdeaCommunity("2024.3.5")
So when -PlocalIdePath is not passed (the CI case), Gradle downloads IntelliJ IDEA Community on its own. A workflow just runs the build without that property.
What to do
Add .github/workflows/ci.yml:
actions/checkout@v4
actions/setup-java@v4 with Temurin 21
gradle/actions/setup-gradle@v4 (gives Gradle caching)
- run
./gradlew build — compiles :core + :plugin, runs the :core parser tests, and buildPlugin packages the zip. Do not pass -PlocalIdePath in CI.
- add
./gradlew verifyPlugin if you want the plugin-structure check too.
Cache the IntelliJ Platform download as well (the IDE artifact is ~1 GB); setup-gradle caches ~/.gradle, and the platform cache lives there too, so cold runs are slow but warm runs are fast.
Trigger on push (main) and pull_request.
How to verify
The first run is green and does the IDE download; a follow-up push reuses the cache. A red build should block the change.
The plugin has no CI — nothing builds or runs the parser tests on push.
The build is already CI-ready. In
plugin/build.gradle.kts:So when
-PlocalIdePathis not passed (the CI case), Gradle downloads IntelliJ IDEA Community on its own. A workflow just runs the build without that property.What to do
Add
.github/workflows/ci.yml:actions/checkout@v4actions/setup-java@v4with Temurin 21gradle/actions/setup-gradle@v4(gives Gradle caching)./gradlew build— compiles:core+:plugin, runs the:coreparser tests, andbuildPluginpackages the zip. Do not pass-PlocalIdePathin CI../gradlew verifyPluginif you want the plugin-structure check too.Cache the IntelliJ Platform download as well (the IDE artifact is ~1 GB);
setup-gradlecaches~/.gradle, and the platform cache lives there too, so cold runs are slow but warm runs are fast.Trigger on
push(main) andpull_request.How to verify
The first run is green and does the IDE download; a follow-up push reuses the cache. A red build should block the change.