Skip to content

Verify Maven availability before completing releases - #287

Merged
kdubb merged 2 commits into
mainfrom
codex/verify-maven-release
Oct 20, 2026
Merged

kdubb merged 2 commits into
mainfrom
codex/verify-maven-release

Conversation

@kdubb

@kdubb kdubb commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Maven Central can still return 404 after the publish task succeeds. Beta.51 exposed this gap: the GitHub release completed before the public CLI could resolve.

Add a verification gate immediately after Maven publication, before plugin, Docker, documentation, and GitHub release publication. It downloads generator/CLI POMs and JARs plus cli-<version>-all.jar, checks their public SHA-256 checksums, and runs the downloaded CLI to verify its exact version. The .fatjar suffix is not a Maven artifact filename; JBang's all@fatjar notation remains unchanged.

Following the approach in outfoxx/sunday-js#86, propagation and transient failures retry up to 60 times with 15-second pauses, 30-second network timeouts, a 60-second CLI timeout, and a hard 20-minute workflow step limit. Failures report the unmet condition. Generator verifies immutable versioned Maven coordinates, so it does not need npm's shared dist-tag serialization.

Validation:

  • Actionlint passed.
  • ./gradlew verifyCiArtifacts passed all 23 tests, including nine new release verification tests. This task already participates in root check.
  • Live verification of 2.0.0-beta.51 passed: all five artifacts and SHA-256 checksums, followed by the downloaded CLI reporting beta.51 / build 5ff1f62.

Wait for public POMs and JARs with matching SHA-256 checksums, including the CLI all.jar, then smoke-test the downloaded CLI. Bound retries in the release workflow and cover propagation, corruption, timeout, and version failures with CI-script tests.
@kdubb
kdubb marked this pull request as ready for review October 20, 2026 18:42
@greptile-apps

greptile-apps Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; the CLI diagnostics fix introduces no new blocking issue.

Summary

Adds a Maven availability gate before the remaining release steps.

  • Release publishing waits until Maven artifacts and the CLI are ready.
  • The release job quotes the path used to export its short SHA.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Publish Maven artifacts] --> B[Download artifacts and checksums]
  B --> C[Check SHA-256 and CLI version]
  C -->|Pass| D[Publish plugin, Docker, docs, and GitHub release]
  C -->|Fail| E[Log failure and retry]
  E --> B
  E -->|Retries or step timeout exhausted| F[Stop release]
Loading

Reviews (2) 路 Last reviewed commit: "Preserve CLI output in release verificat..." 路 Reviewed by Greptile

Comment thread scripts/ci/wait_for_maven_release.py Outdated
Include captured stdout and stderr for failed or timed-out Java runs. Cover retry logs and final errors for text, byte, and absent subprocess output.
@kdubb
kdubb enabled auto-merge October 20, 2026 18:57
@sonarqubecloud

Copy link
Copy Markdown

@kdubb
kdubb merged commit c175ab1 into main Oct 20, 2026
14 checks passed
@kdubb
kdubb deleted the codex/verify-maven-release branch October 20, 2026 19:04
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