Fabisev/automating mvn deployment#626
Open
fabisev wants to merge 4 commits into
Open
Conversation
added 4 commits
July 14, 2026 17:09
Add maven-release-plugin configuration with module-specific tag formats and SCM connection details to enable automated Maven deployments across all library modules.
Combine the maven-release-plugin/SCM/autoPublish config (this branch) with the maven-toolchains-plugin added on main (PR #617) so every module carries both plugins in a single <build> section.
Add .github/workflows/release.yml, a workflow_dispatch pipeline that builds, tests, and publishes a single module to Maven Central in one pinned JDK 8 environment, replacing the manual mvn deploy from a developer workstation. The release step prepares locally, publishes, then pushes the commits and module-scoped tag atomically, so a failed publish never leaves an orphan tag on the remote; a failure path rolls back the runner state. Releases are serialized repo-wide via a shared concurrency group. Signing/publishing secrets are not wired yet, so only the dry-run path (skip_publish) works without credentials for now. Set all module versions to -SNAPSHOT as the release plugin's expected starting point, and merge a duplicate top-level <build> section in the events POM introduced when the toolchains change (PR #617) met the release-plugin config on this branch.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #626 +/- ##
=========================================
Coverage 65.38% 65.38%
Complexity 211 211
=========================================
Files 34 34
Lines 988 988
Branches 142 142
=========================================
Hits 646 646
Misses 290 290
Partials 52 52 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue #, if available:
Description of changes:
Replaces the manual
mvn deployrelease with GitHub Actions release pipelines that build, test, sign, and publish CI-validated artifacts to Maven Central.release.yml:workflow_dispatchpipeline for the six pure-Java modules. Pinned JDK 8,mvn verifygate, thenrelease:prepare/release:performwith a publish-safe ordering (prepare locally, publish, thengit push --atomiconly after publish succeeds; failure rolls back the runner and never modifies the remote). Repo-widereleaseconcurrency group so releases never overlap.release-runtime-interface-client.yml: dedicated RIC pipeline. RIC ships a JNI native library for four targets plus a main JAR, so each native library is built on a runner of its own architecture (x86_64 onubuntu-latest, aarch_64 onubuntu-24.04-arm) instead of QEMU emulation, then one job assembles all artifacts and publishes them.maven-release-pluginconfiguration, SCMdeveloperConnection, andautoPublish=true.Testing done:
Validated locally with
act(GitHub Actions run in a container)release.yml): checkout, pinned JDK 8,mvn verify, andrelease:prepare -DdryRunpass; correct release tag and next-development version bump.Log4j2Plugins.datdescriptor, classes are Java 8 bytecode, and the descriptor unit test passes.Not exercisable outside a real run in this repo: the live token exchange and the CI build-matrix assembly. These will be covered by the first dry-run (
skip_publish: true) after merge.Target (OCI, Managed Runtime, both): N/A
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.