Skip to content

ci: build, test and Plugin Verifier on every push and PR - #13

Merged
GabrielBBaldez merged 2 commits into
mainfrom
ci/build-test-plugin-verifier
Aug 2, 2026
Merged

ci: build, test and Plugin Verifier on every push and PR#13
GabrielBBaldez merged 2 commits into
mainfrom
ci/build-test-plugin-verifier

Conversation

@GabrielBBaldez

Copy link
Copy Markdown
Member

The repo had no CI at all — intellij#12 arrived with no checks reported, so nothing verified it compiled, let alone that the plugin still loads across the IDE range the manifest claims.

Jobs

build:core:test (the parser suite), then build, verifyPluginProjectConfiguration, verifyPluginStructure, buildPlugin, uploading the zip as an artifact.

:core:test rather than test, because :plugin disables its test task by design — gradlew test reports success whether or not any test exists.

verify — the IntelliJ Plugin Verifier against 2024.2.5 and 2024.3.5. The first is the oldest release in the 242 line sinceBuild claims, which is where an API the plugin uses might not exist yet; the compile target can't surface that. untilBuild = 261.* stays unverified — there's no release to check against, so it remains a forward-looking promise.

Two ways this passes while checking nothing

Both found by running it rather than reading docs:

  • pluginVerification.ides accepts ide(IntelliJPlatformType.IntellijIdeaCommunity, "2024.2.5"), compiles, runs — and schedules no verification for it. Only the ide("IC-2024.2.5") string form works. The task still succeeds, having checked one IDE instead of two.
  • verifyPlugin needs pluginVerifier() in the dependencies block. Without it the task fails outright, which is the friendlier failure of the two.

So the verify job asserts the number of report directories equals the number of declared IDEs. A silently-dropped entry fails the build instead of passing quietly.

Verified locally

:core — 7 tests, 0 failures, 0 errors
Scheduled verifications (2):
  IC-242.24807.4  -> Compatible
  IC-243.26053.27 -> Compatible

The assertion was also run against a deliberately wrong declared count to confirm it fails.

The repo had no CI. Contributor PRs were landing with nothing checking that
they compiled, let alone that the plugin still loaded on the IDE range the
manifest claims.

Two jobs:

build — runs :core:test (the parser suite; :plugin has no tests by design, so
`gradlew test` alone is green either way), then build, the two configuration
checks, and buildPlugin, uploading the zip.

verify — runs the IntelliJ Plugin Verifier against 2024.2.5 and 2024.3.5. The
first is the oldest release in the 242 line sinceBuild claims, which is where
an API the plugin uses might not exist yet; the compile target cannot surface
that. untilBuild = 261.* stays unverified: no release exists to check against.

Two traps worth recording, both of which produce a green run that verified
nothing:

- pluginVerification.ides accepts ide(IntelliJPlatformType, String) and then
  schedules no verification at all. Only the ide("IC-2024.2.5") string form
  works. The task still succeeds, having checked one IDE instead of two.
- verifyPlugin needs pluginVerifier() in the dependencies block; without it
  the task fails outright, which is the friendlier of the two failures.

The verify job therefore asserts that the number of report directories matches
the number of declared IDEs, so a silently-dropped entry fails the build
instead of passing quietly.
…g step

The first run failed both jobs with exit 126 — gradlew was committed 100644, so
Linux runners could not execute it. Nobody noticed because the repo had no CI
and every build until now was on Windows, where the mode bit is not consulted.

The report step then said "no test results — :core:test produced nothing",
which is true and misleading: the test step had already failed. It now only
treats missing results as a finding when the test step reported success, which
is the case it exists for — a suite that quietly stops running.
@GabrielBBaldez
GabrielBBaldez merged commit d283841 into main Aug 2, 2026
2 checks passed
@GabrielBBaldez
GabrielBBaldez deleted the ci/build-test-plugin-verifier branch August 2, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant