feat(ci): add ship-based release automation and migrate publishing to maven central#113
Merged
Merged
Conversation
pmathew92
reviewed
Jul 24, 2026
| # Returns a simple true/false boolean indicating whether the version indicates it's a prerelease or not. | ||
| # | ||
| # TODO: Remove once the common repo is public. | ||
| # |
pmathew92
reviewed
Jul 24, 2026
| # Returns the release notes from the content of a pull request linked to a release branch. It expects the branch name to be in the format release/vX.Y.Z, release/X.Y.Z, release/vX.Y.Z-beta.N. etc. | ||
| # | ||
| # TODO: Remove once the common repo is public. | ||
| # |
pmathew92
reviewed
Jul 24, 2026
| # | ||
| # Returns the version from the .version file. | ||
| # | ||
| # TODO: Remove once the common repo is public. |
pmathew92
reviewed
Jul 24, 2026
| # | ||
| # Creates a GitHub release with the given version. | ||
| # | ||
| # TODO: Remove once the common repo is public. |
pmathew92
reviewed
Jul 24, 2026
| # | ||
| # Returns a simple true/false boolean indicating whether the tag exists or not. | ||
| # | ||
| # TODO: Remove once the common repo is public. |
pmathew92
reviewed
Jul 24, 2026
|
|
||
| ### TODO: Replace instances of './.github/actions/' w/ `auth0/dx-sdk-actions/` and append `@latest` after the common `dx-sdk-actions` repo is made public. | ||
| ### TODO: Also remove `get-prerelease`, `get-version`, `release-create`, `tag-create` and `tag-exists` actions from this repo's .github/actions folder once the repo is public. | ||
|
|
pmathew92
reviewed
Jul 24, 2026
| ossr-username: ${{ secrets.ossr-username }} | ||
| ossr-token: ${{ secrets.ossr-token }} | ||
| signing-key: ${{ secrets.signing-key}} | ||
| signing-password: ${{ secrets.signing-password}} |
Contributor
There was a problem hiding this comment.
This approach of accessing secrets might fail now. If it fails we should do something like this
ossr-username: ${{ secrets.OSSR_USERNAME }}
ossr-token: ${{ secrets.OSSR_TOKEN }}
signing-key: ${{ secrets.SIGNING_KEY }}
signing-password: ${{ secrets.SIGNING_PASSWORD }}
pmathew92
reviewed
Jul 24, 2026
| ### TODO: Replace instances of './.github/workflows/' w/ `auth0/dx-sdk-actions/workflows/` and append `@latest` after the common `dx-sdk-actions` repo is made public. | ||
| ### TODO: Also remove `get-prerelease`, `get-release-notes`, `get-version`, `maven-publish`, `release-create`, and `tag-exists` actions from this repo's .github/actions folder once the repo is public. | ||
| ### TODO: Also remove `java-release` workflow from this repo's .github/workflows folder once the repo is public. | ||
|
|
pmathew92
reviewed
Jul 24, 2026
| @@ -0,0 +1,40 @@ | |||
| name: Publish Snapshot (rehearsal) | |||
Contributor
There was a problem hiding this comment.
Do you need the snapshot ?
Contributor
Author
There was a problem hiding this comment.
used for dry test.Removed.
pmathew92
reviewed
Jul 24, 2026
| repositories { | ||
| sonatype { | ||
| nexusUrl.set(uri('https://ossrh-staging-api.central.sonatype.com/service/local/')) | ||
| snapshotRepositoryUrl.set(uri('https://central.sonatype.com/repository/maven-snapshots/')) |
Contributor
Author
There was a problem hiding this comment.
used for dry test.Removed.
pmathew92
requested changes
Jul 24, 2026
pmathew92
approved these changes
Jul 24, 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.
Changes
Adds release automation to JWTDecode.Android (currently none) and migrates publishing from the retired OSSRH endpoint (
oss.sonatype.org, now HTTP 402) to the Sonatype Central Portal. Mirrors theauth0/shippipeline used by Auth0.Android, adapted for this pure-Java library. Last release was2.0.2(Jan 2023) with ~33 unreleased commits — releasing is currently impossible.Added
release.yml(triggers onrelease/*PR merge),java-release.yml(reusable),snapshot.yml(safe rehearsal → snapshots repo).get-version,get-prerelease,get-release-notes,tag-exists,release-create,maven-publish..version,.shiprc(ship control files);gradle/versioning.gradle,gradle/maven-publish.gradle; POM metadata ingradle.properties.build.gradle:nexus-publish2.0.0 + Central Portal config; removed deadjcenter().Removed
publish.yml(targeted the dead endpoint) and theoss-libraryplugin fromlib/build.gradle.Public API: No source changes — no endpoints, classes, or methods affected. Release tooling only; artifact coordinates (
com.auth0.android:jwtdecode) unchanged.Usage:
npx @a0/ship <patch|minor|major>→ opens arelease/X.Y.ZPR → merge publishes a staged Central Portal release + GitHub release.Alternatives considered: Keeping oss-library (rejected — dead endpoint,
git describeversioning incompatible with ship); upgrading the toolchain (unnecessary — nexus-publish 2.0.0 supports Gradle 6.2, so left unchanged).References
SDK-10343
Testing
Testing
test.ymlruns./gradlew clean test jacocoTestReporton every PR, exercising the rewrittenlib/build.gradle.snapshot.ymlmanually — full credential/signing/upload chain to the disposable snapshots repo (2.0.2-SNAPSHOT), never a permanent release.curlsucceeds — an environment issue, not config. CI (Ubuntu, no proxy) is the verification path; all YAML/gradle config was parse-validated offline.[x] This change adds test coverage
[x] This change has been tested on the latest version of the platform/language or why not
Checklist
[x] I have read the Auth0 general contribution guidelines
[x] I have read the Auth0 Code of Conduct
[x] All existing and new tests complete without errors