Skip to content

ci: test pull requests and release to Maven Central on version tags - #41

Merged
boehlerlukas merged 2 commits into
masterfrom
ci/release-automation
Sep 30, 2026
Merged

boehlerlukas merged 2 commits into
masterfrom
ci/release-automation

Conversation

@boehlerlukas

Copy link
Copy Markdown
Contributor

Automates Android releases. Push the tag X.Y.Z and GitHub Actions publishes and releases to Maven Central. The manual Central Portal step is gone.

  • Publishing: maven-push.gradle is replaced by com.vanniktech.maven.publish 0.34.0 (the newest version that works with Gradle 8.10.2 / AGP 8.8), set to auto-release and sign all publications.
    • Parity checked with publishToMavenLocal: same files as 18.1.0 (aar, sources, module, pom, .asc, no javadoc).
    • The POM is byte-identical to the old setup's output from the same commit.
    • POM_INCEPTION_YEAR removed (unused; the plugin would have added it to the POM).
  • ci.yml (pull requests and pushes to master): :gleap:testDebugUnitTest :gleap:assembleRelease on JDK 17.
  • release.yml (tag X.Y.Z, plus a workflow_dispatch dry run that publishes to Maven Local with real signing):
    • checks the tag against VERSION_NAME, that the tag is on master, and that the version isn't on Central yet;
    • runs the tests, then publishAndReleaseToMavenCentral;
    • polls repo1 for the POM (30 min);
    • creates the GitHub release from the CHANGELOG section.
  • README: new "Releasing" section.

Secrets: MAVEN_CENTRAL_USERNAME, MAVEN_CENTRAL_PASSWORD, SIGNING_KEY (ASCII-armored), SIGNING_KEY_ID (short id), SIGNING_KEY_PASSWORD.

Local publishing: ~/.gradle/gradle.properties needs mavenCentralUsername / mavenCentralPassword (same values as NEXUS_*). The signing.* keys work unchanged.

Before tagging 19.0.0:

Verification: 180/180 unit tests pass, actionlint is clean, and the CI in-memory signing path was checked with a throwaway key. A real upload hasn't been tested yet; the first one should be the workflow_dispatch dry run once the secrets are set.

🤖 Generated with Claude Code

boehlerlukas and others added 2 commits September 30, 2026 11:20
Publishing moves to com.vanniktech.maven.publish 0.34.0 with Central Portal
auto-release and in-memory signing in CI; the artifact (aar, sources, module,
POM) matches the old maven-push.gradle output. CI runs the unit tests and the
release build on pull requests and pushes to master. Pushing a tag X.Y.Z
checks it against VERSION_NAME, runs the tests, publishes and releases to
Maven Central, waits for the POM on repo1 and creates the GitHub release from
the CHANGELOG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19.0.0 is not published yet, so the Unreleased entry joins its section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@boehlerlukas
boehlerlukas merged commit 255dc83 into master Sep 30, 2026
1 check 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.

1 participant