Skip to content

fix(release): add non-blocking Maven Central propagation verify#175

Merged
saurabhjain1592 merged 1 commit into
mainfrom
fix/release-yml-verify-maven-central-propagation
May 9, 2026
Merged

fix(release): add non-blocking Maven Central propagation verify#175
saurabhjain1592 merged 1 commit into
mainfrom
fix/release-yml-verify-maven-central-propagation

Conversation

@saurabhjain1592
Copy link
Copy Markdown
Member

Summary

The release workflow reports "Deploy successful" the moment Sonatype Central validates the upload (per the v8.0.0 release run 25604825388 at 2026-05-09 15:37Z), then proceeds straight to creating the GitHub Release. But actual public availability on `repo1.maven.org/maven2` lags 10-30 minutes — operators couldn't tell whether the release was truly consumable.

Change

Add a polling step between `mvn deploy` and the GitHub Release that checks `repo1.maven.org` for the artifact .pom directly. Up to 30 min (60 × 30s).

`continue-on-error: true` keeps it non-blocking — if propagation exceeds 30 min, the GH release still fires and a clear warning points the operator at the Sonatype publish dashboard.

DoD (dryrun)

Ran the polling logic locally against two real versions:

```
$ # v7.1.0 (known propagated, prior release):
✅ axonflow-sdk:7.1.0 is live (after 1 attempt(s))

$ # v8.0.0 (just published, propagation in flight at deploy time):
✅ already propagated to Maven Central — https://repo1.maven.org/maven2/com/getaxonflow/axonflow-sdk/8.0.0/axonflow-sdk-8.0.0.pom
```

(v8.0.0 has now propagated since the original release run, ~25 min after `mvn deploy`.)

Self-review

  • YAML still parses (`python3 -c 'yaml.safe_load(...)'`).
  • Bash block in the `run:` step has valid syntax (`bash -n`).
  • `POM_URL` host + path match `pom.xml` `com.getaxonflow` + `axonflow-sdk` exactly.
  • Step inserted BEFORE GitHub Release creation so the release notes can reference availability state, but `continue-on-error` keeps the GH release un-blocked.

No source / pom.xml / artifact change.

Previously the workflow reported "Deploy successful" the moment Sonatype
Central validated the upload (per the v8.0.0 release at 2026-05-09 15:37Z),
then proceeded straight to creating the GitHub Release. But actual public
availability on `repo1.maven.org/maven2` lags by 10-30 minutes for
typical releases — operators were left guessing whether the release was
truly consumable.

Add a polling step between `mvn deploy` and the GitHub Release that
checks `repo1.maven.org` for the artifact .pom directly. Up to 30
minutes (60 × 30s). Non-blocking via `continue-on-error: true` so that:

- Fast propagation: workflow reports Maven Central availability in
  under a minute and the GH release fires.
- Slow propagation (>30min): polling step warns and the GH release
  still fires, leaving the operator with a clear pointer to the
  Sonatype publish dashboard for follow-up.

Verified locally that the new polling logic returns success on first
attempt against both the prior v7.1.0 release and the just-published
v8.0.0 (which has now propagated since the v8.0.0 release ran).

Signed-off-by: Saurabh Jain <saurabhjain1592@gmail.com>
@saurabhjain1592 saurabhjain1592 merged commit e2b5858 into main May 9, 2026
19 checks passed
@saurabhjain1592 saurabhjain1592 deleted the fix/release-yml-verify-maven-central-propagation branch May 9, 2026 16:35
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