[RUN-4639] Publish CLI Maven artifacts to PackageCloud instead of Maven Central - #637
Merged
Merged
Conversation
…ntral org.rundeck is over Maven Central's free publishing limits (RUN-4570), and Sonatype begins rate-limiting publishing on 2026-08-11. Applies the same PackageCloud migration already validated end-to-end on the rundeck-plugins org repos (RUN-4638) to rd-api-client, rd-cli-lib, and rd-cli-tool. - Remove the nexus-publish plugin and nexusPublishing block. - Register PackageCloud (https://packagecloud.io/pagerduty/rundeck/maven2) as the publishing repository for all 3 Maven modules, reusing the same PackageCloud repo the CLI's .deb/.rpm already publish to. - Sign artifacts with the gpg CLI and upload signatures via curl instead of Gradle's signing plugin: Gradle auto-generates a checksum for every publication artifact including .asc files, and PackageCloud's Maven endpoint 422s on the checksum-of-a-signature-file, aborting the publish task partway through. - rd-cli-tool sets archivesBaseName='rundeck-cli', so its local build output filenames differ from its published artifactId (rd-cli-tool) - the signing step signs the local files but uploads under the published coordinate name. Existing versions already on Maven Central are unaffected; only future releases move to PackageCloud.
smartinellibenedetti
approved these changes
Jul 22, 2026
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.
Jira ticket
RUN-4639
Description
org.rundeckis over Maven Central's free publishing limits (RUN-4570); Sonatype begins rate-limiting publishing on 2026-08-11. This applies the same PackageCloud migration already validated end-to-end on therundeck-pluginsorg repos (RUN-4638) to this repo's 3 Maven modules:rd-api-client,rd-cli-lib, andrd-cli-tool.nexus-publishplugin andnexusPublishing {}block.https://packagecloud.io/pagerduty/rundeck/maven2) as the publishing repository ingradle/publishing.gradle, reusing the same PackageCloud repo the CLI's.deb/.rpmalready publish to — no new PackageCloud repo needed.gpgCLI and uploads signatures viacurlinrelease.yml, instead of Gradle'ssigningplugin: Gradle auto-generates a checksum for every publication artifact including.ascfiles, and PackageCloud's Maven endpoint 422s on the checksum-of-a-signature-file, aborting the publish task partway through.rd-cli-toolsetsarchivesBaseName='rundeck-cli', so its local build output filenames (rundeck-cli-<version>*.jar) differ from its published Maven artifactId (rd-cli-tool) — the signing step signs the local files but uploads the.ascunder the published coordinate name.Existing versions already published on Maven Central are unaffected — only future releases move to PackageCloud only. The GitHub Release step and the existing
.deb/.rpmPackageCloud push are untouched.Testing instructions
./gradlew clean buildpasses locally with all tests (verified:BUILD SUCCESSFUL, 75 tasks, all 3 modules +integration-tests)../gradlew tasks --allconfirmspublishAllPublicationsToPackageCloudRepositoryexists forrd-api-client,rd-cli-lib, andrd-cli-tool../gradlew buildstill succeeds with noPKGCLD_REPO_URL/PKGCLD_WRITE_TOKENset (thegradle.ymlCI workflow is unaffected — the fallback default inpublishing.gradleavoids a null-URL crash).release.yml, confirm the 3 artifacts (plus-sources/-javadoc, andrd-cli-tool's-alljar) and their.ascsignatures land underhttps://packagecloud.io/pagerduty/rundeck/maven2/org/rundeck/..., and confirmPKGCLD_WRITE_TOKEN/SIGNING_KEY_B64/SIGNING_PASSWORDsecrets are available to this workflow.