Skip to content

[RUN-4638] Migrate publishing from Maven Central to PackageCloud#71

Merged
fdevans merged 1 commit into
mainfrom
RUN-4638-publish-to-packagecloud
Jul 21, 2026
Merged

[RUN-4638] Migrate publishing from Maven Central to PackageCloud#71
fdevans merged 1 commit into
mainfrom
RUN-4638-publish-to-packagecloud

Conversation

@Jesus-Osuna-M

Copy link
Copy Markdown
Contributor

Jira ticket

RUN-4638 (subtask of RUN-4570)

Description

Migrate git-plugin publishing from Maven Central (Sonatype) to PackageCloud, applying the same design already validated on rundeck-plugins/sshj-plugin#136 and the other already-migrated rundeck-plugins repos. Part of the RUN-4570 Maven Central publishing limits resolution — plugins account for the bulk of the file/release count on Maven Central, but no external project depends on them as Maven dependencies.

  • Removed nexusPublish/nexusPublishing (version-catalog form: dropped the alias(libs.plugins.nexusPublish) plugin and its nexusPublish entries in gradle/libs.versions.toml).
  • Point the PackageCloud maven repo at the configurable PKGCLD_REPO_URL env var (with a fallback to the real rundeck-plugins repo), replacing the half-migrated PackageCloudTest block that pointed at rundeckpro-test (tacked onto build.gradle directly, same pattern seen on rundeck-ec2-nodes-plugin/rundeck-azure-plugin).
  • Dropped Gradle-side GPG signing (sign(publishing.publications)): PackageCloud's Maven endpoint rejects the checksum Gradle auto-generates for .asc signature files (422 Unprocessable Entity). Sign and upload via gpg CLI + curl instead, directly in release.yml — the same mechanism validated end-to-end on sshj-plugin.
  • release.yml: replaced the "Publish to Maven Central" step with "Publish to PackageCloud" + a "Sign and upload GPG signatures" step.

Testing instructions

  • Merge this PR.
  • Tag a version to trigger the release workflow.
  • Verify the artifact, sources jar, javadoc jar, and their .asc signatures land under org/rundeck/plugins/git-plugin/<version>/ on PackageCloud.
  • Verify ./gradlew build still succeeds without PKGCLD_REPO_URL set.

Maven Central's free publishing limits are being hit org-wide (RUN-4570);
plugins account for most of the file/release count and nothing depends on
them as Maven dependencies, so rundeck-plugins repos are moving to
PagerDuty's PackageCloud instead. Same design already validated on
sshj-plugin, http-step, and other rundeck-plugins repos.

Signing moves out of Gradle's signing plugin into a manual gpg+curl step in
the release workflow: Gradle auto-generates a checksum for every publication
artifact including .asc signature files, and PackageCloud's Maven endpoint
422s on the checksum-of-a-signature-file, aborting the publish task.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates this plugin’s release publishing pipeline from Maven Central/Sonatype to PackageCloud, aligning with the approach used in other rundeck-plugins repositories to reduce Maven Central usage while keeping the build functional without PackageCloud-specific configuration.

Changes:

  • Removed Gradle Nexus/Sonatype publishing configuration and Gradle-side GPG signing.
  • Added configurable PackageCloud Maven repository targeting via PKGCLD_REPO_URL (with a default fallback).
  • Updated release.yml to publish to PackageCloud and upload .asc signatures via gpg + curl.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
gradle/publishing.gradle Drops Gradle signing configuration from the shared publishing setup.
gradle/libs.versions.toml Removes the Nexus publish plugin version and catalog entry.
build.gradle Removes Nexus publishing plugin usage; configures PackageCloud repository and auth.
.github/workflows/release.yml Switches release publishing from Sonatype to PackageCloud and adds signature upload.

PKGCLD_WRITE_TOKEN: ${{ secrets.PKGCLD_WRITE_TOKEN }}
- name: Sign and upload GPG signatures to PackageCloud
run: |
set -e
@fdevans
fdevans merged commit f04ada3 into main Jul 21, 2026
4 checks passed
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.

3 participants