Repository navigation
Release on merging a release PR from staging into master - #326
Merged
Merged
Conversation
A staging to master PR labelled release creates the GitHub release of every version without a tag, on the PR's head commit with its changelog section as notes, then starts the Release workflow on each tag. While the label is on an open PR, the same plan runs as a check. Releasing on merge stays off until the RELEASE_ON_MERGE repository variable is true. - release.py pending plans the releases of a merge, after checking that the merge commit holds exactly the PR's head. - The announcement reads the GitHub release, so a dispatched run announces too, naming who merged the release PR. - Changelog headings are read in one place, which skips '## ' lines in code blocks; a missing changelog is reported instead of crashing.
Dependency security scanScanned 25 resolved dependencies, failing on HIGH and above. Result: passed |
Code coverage
Least covered classes (10 shown)
|
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
Merging a staging to master PR labelled
releasenow releases the SDK: no GitHub release is created by hand any more. It lands dark: nothing happens on merge until the repository variableRELEASE_ON_MERGEistrue.release-on-merge.ymldoesreleaselabel is on an open staging to master PRrelease.py pendingas the Release plan check: the tags the merge will create, or why the release would be refusedrelease.ymlon the tagChanges to the existing release path:
releaseevent, and reading the notes withgh, so a dispatched run announces too. A new optionalrequested_byinput names the person who merged the release PR instead ofgithub-actions[bot].check-sourcesnow also refuses a final release whose changelog still has a## XX.XX.XXheading, for releases published by hand too.release.ymlas before.Design and decisions: Java SDK release automation.
What
pendingrefusesNothing is created when any of these holds:
## X.Y.Zsection, or still has## XX.XX.XX.A tag that exists is skipped, so a merge with no new version releases nothing. Only the plain version tag of a final release is marked latest; a
-rcNversion becomes a GitHub pre-release.Before turning it on
ui-26.8.0on c180b24, the 26.8.0 commit:ly.count.sdk:java-ui:26.8.0shipped with it (it is on Maven Central) but never got its own tag. Without the tag, the first release PR's check asks to release UI 26.8.0.releaselabel, and consider making Release plan a required check on master.release.ymlalready needs: themaven-releaseenvironment with required reviewers and tag rules, and maven.countly.com.RELEASE_ON_MERGEtotrue.Verified
pendingfor new, tagged and not-ready versions, release candidates, the merge checks, changelog sections with code blocks and CRLF, and the CLI end to end in a throwaway git repository.pendingon this repository with the core bumped to 26.9.0 and a localui-26.8.0tag: plans26.9.0only, marked latest, with the 55-line changelog section as notes; with the heading still## XX.XX.XXit fails and says why.Not covered by a test
Creating the releases, the dispatch and the announcement run only on a real merge. Watch the first one; the publish approval of
maven-releaseis still the last gate, and the run summary says how to finish a release by hand if a step fails.🤖 Generated with Claude Code