Skip to content

build: Modernise CI workflows and unblock local Maven build#159

Open
astubbs wants to merge 1 commit into
masterfrom
dev-cc
Open

build: Modernise CI workflows and unblock local Maven build#159
astubbs wants to merge 1 commit into
masterfrom
dev-cc

Conversation

@astubbs
Copy link
Copy Markdown
Owner

@astubbs astubbs commented Apr 10, 2026

Summary

  • CI workflows: pin every action to a full commit SHA (supply chain safety), bump everything to current latest (checkout v6, cache v5, setup-java v5, release-drafter v7, cancel-workflow-action 0.13.1), and replace EOL Java 18 in the matrix with Java 21 LTS
  • actionlint gate: new actionlint job runs first in ci.yml and the test job depends on it, so broken workflow YAML can never reach master again
  • Dead workflow code: remove the broken publish_snapshot_github job from release.yml (missing job dependency, malformed shell command, YAML indentation error — it could never have executed)
  • Lombok bump: 1.18.24 → 1.18.34 to fix the JCImport.qualid NoSuchFieldError that breaks the build on JDK 17.0.7+
  • maven-jar-plugin fix: merge two duplicate pluginManagement entries — the second silently dropped the 3.2.2 version pin and let Maven pick 3.4.1, which is stricter and rejected the redundant unclassified jar execution. Also drop the redundant explicit jar goal binding (the default execution already binds it)

Why now

mvn clean install was broken locally on any JDK 17.0.7+ via Lombok, and once that was fixed it surfaced a latent pluginManagement bug. Both are fixed here. actionlint immediately earned its keep by catching the stale release-drafter@v5 (Node 16, no longer runnable on GH runners) that I'd otherwise have missed.

Test plan

  • mvn clean install passes all 5 modules locally on JDK 17.0.18
  • actionlint .github/workflows/*.yml clean
  • CI passes on both Java 17 and 21 matrix entries
  • actionlint job runs and gates the test job

🤖 Generated with Claude Code

Bring CI tooling and the build configuration up to date so the project
builds cleanly on current JDK 17 patches and so workflow regressions are
caught automatically.

Workflows:
- Add an actionlint job to ci.yml that gates the test job, so broken
  workflow YAML can never reach master again
- Bump Java matrix from [17, 18] (18 is EOL) to [17, 21] (LTS)
- Pin every action to a full commit SHA with a trailing version comment
  for supply chain safety; Dependabot keeps the SHA + comment in sync
- Update all actions to current latest: checkout v6.0.2, cache v5.0.4,
  setup-java v5.2.0, cancel-workflow-action 0.13.1, release-drafter v7.2.0
  (release-drafter v5 used Node 16 and could no longer run on GH runners)
- Remove the broken publish_snapshot_github job from release.yml: it had
  a missing job dependency, a malformed shell command, and a YAML
  indentation error and could never have executed
- Note in dependabot.yml that actions are SHA-pinned

Build:
- Bump Lombok 1.18.24 -> 1.18.34 to fix a JCImport.qualid NoSuchFieldError
  on JDK 17.0.7+
- Merge two duplicate maven-jar-plugin entries in pluginManagement: the
  second declaration silently dropped the 3.2.2 version pin and let
  Maven resolve to 3.4.1, which is stricter and rejected the redundant
  unclassified jar execution
- Remove the redundant explicit jar goal binding (the default execution
  already binds it)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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