Releases use the Central Publisher Portal and preserve the coordinates
com.icoderman:wc-api-java. The release profile uses
org.sonatype.central:central-publishing-maven-plugin with automatic publishing
disabled. Uploading a bundle therefore does not make it public; a maintainer must
review and publish the validated deployment in the Central Portal.
- Normal pushes and pull requests never invoke the release workflow.
- The workflow is manual and defaults to
verifymode. uploadmode uses the protectedmaven-centralGitHub environment and only accepts av*tag matching the non-SNAPSHOT POM version.- The Central plugin has
<autoPublish>false</autoPublish>. - Publishing the validated deployment in Central is a separate, explicit, irreversible action.
Configure the maven-central GitHub environment with required reviewers before
adding secrets. Store these environment secrets there:
CENTRAL_USERNAME: username from a newly generated Central Portal user token.CENTRAL_PASSWORD: password from that token.GPG_PRIVATE_KEY: ASCII-armored export of the signing private key.GPG_PASSPHRASE: passphrase for the signing key.
Never commit credentials, private keys, passphrases, Maven settings.xml, or a
recovered GnuPG home. The historical signing key fingerprint is
161A 7A08 F89C 1657 FC4F 0B75 DE35 65D0 3185 1B72.
- Verify
masterand prepare release notes. - Change the POM from
1.5-SNAPSHOTto1.5.0in a reviewed release PR. - Merge with the repository's noreply commit identity and wait for CI.
- Create and push the signed/approved
v1.5.0tag. - Dispatch this workflow from
v1.5.0inuploadmode. - Inspect the validated deployment in the Central Portal.
- Publish it only after explicit owner approval.
- Resolve the artifact from a clean Maven consumer before creating the GitHub Release and announcing availability.
For a credential-free build check, dispatch verify mode or run:
mvn clean verifyFor a local signed-bundle check without deploying, use an isolated GnuPG home and run:
GNUPGHOME=/path/to/isolated/.gnupg mvn clean verify -Prelease