ci: release weekly from git history with git-cliff instead of release-please - #418
Merged
Merged
Conversation
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.
Same release setup as qrcodets (forwardsoftware/qrcodets#93, first release v1.0.1 published this way). It replaces release-please and the weekly
merge-release-prjob, which could not work: release PRs are pushed withGITHUB_TOKEN, so required checks never run on them, and dispatched CI runs do not count as required checks.How it works (
release.yml, Tuesdays 17:00 UTC + manual)orhun/git-cliff-actionv4.9.1, pinned) computes the next version and release notes from conventional commits since the lastv*tag.pnpm/setup(pnpm + Node.jslatest), build,pnpm version --no-git-tag-version,pnpm publish --publish-wait-timeout 600000(npm trusted publishing via OIDC, waits until the version is installable), thengh release create vX.Y.Zwith the generated notes. Nothing is committed back tomain.dry-run: true: compute the version and notes (job summary), build, and runpnpm publish --dry-run.pnpm publishis used instead ofnpm publishbecause the Node.js runtime frompnpm/setuponly linksnode, leaving the runner image npm 10.9.8 onPATH, which cannot do trusted publishing. pnpm 12 does OIDC and provenance natively.Release rules (
cliff.toml)feat→ minor,!/BREAKING CHANGE→ major, everything else → patch.feat,fix,perf,refactor,docsandchoreare included in the release notes;ci,build,test,styleare skipped..github/,.devcontainer/,.vscode/orcliff.tomldo not count, so GitHub Actions bumps do not cut npm releases.Other changes
release-please-config.jsonand.release-please-manifest.json.CHANGELOG.mdis frozen with a pointer to GitHub Releases; the README links there too.package.jsonversionin the repo is no longer bumped (stays6.0.4); the published package gets the right version at publish time.Verification
Dry run on this branch: run 36632556257 computed
v6.0.5(10chorecommits sincev6.0.4), built the CLI, obtained the npm OIDC token, and stopped atSkip publishing @forward-software/react-native-toolbox@6.0.5 (dry run).