Automate Java SDK releases - #2973
Closed
eamsden wants to merge 5 commits into
Closed
Conversation
Replace manual dispatch, Sonatype UI publication, and timed native asset attachment with an approval-gated, retry-safe workflow.
Avoid mixing BSD and GNU stat forms because GNU stat can emit partial filesystem output before the fallback runs.
Drop the mocked release test suite and its per-PR CI job, and move the one-time repository setup out of the workflow README.
Run the production candidate build and packaging path on release-note pull requests without entering the protected release environment. Fix empty-version handling on Bash 3.2 and retry transient Linux native-image Docker builds.
Contributor
Author
|
Closing in favor of #2986, which implements the release automation with a Temporal Worker running in GitHub Actions. |
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.
What changed?
releases/v*file.releaseenvironment approval.Why?
The current process requires operators to type a tag, publish through the Sonatype UI, find and publish a GitHub draft release, and coordinate native asset attachment inside a short timing window. This removes those manual and timing-dependent steps while preserving one explicit human approval before any public release mutation.
Breaking changes?
No public API changes. The operational release process changes after the documented repository protections are configured.
Server PR
N/A.
Before merge
releaseenvironment and its required reviewers, with self-approval and administrator bypass disabled and deployment branches restricted.v*tag ruleset that permits creation but prevents tag updates and deletion.Validation
Publish releasewas skipped before environment evaluation. The validation PR was closed without merging.9.8.7, an exact synthetic commit, and an isolated throwaway GPG key: 83/83 artifacts had valid signatures, 732/732 checksum sidecars matched, and all 17 POMs contained the exact SCM commit.temporal-sdkandtemporal-serviceclientpublications and compiled againstWorkflowClient.1.37.0and a nonexistent coordinate; success and bounded 404 retry/exhaustion behaved as expected.actionlintbash -nfor the release helper scriptsgit diff --check./gradlew --offline --no-daemon spotlessApply./gradlew --offline --no-daemon spotlessCheck./gradlew --offline --no-daemon testcloseAndReleaseSonatypeStagingRepositoryis available.No GitHub environment was entered. No Sonatype endpoint, release credential, Maven publication, tag creation, or GitHub release operation was invoked.