Repository navigation
ci: release with semantic-release from main and next - #27
Merged
Merged
Conversation
Releases now follow the Conventional Commit subjects that land on main (latest dist-tag) or next (x.y.z-next.n on the next dist-tag) instead of a hand-bumped version and a pushed tag. release.yml reuses ci.yml, so a push builds and tests once before semantic-release publishes. The ShellCheck bump PR becomes feat(wasm) so that merging it cuts a release.
timonwong
requested review from
felipecrs
and removed request for
felipecrs
September 30, 2026 08:57
Member
Author
|
@felipecrs I'm merging this now, in order to experiment this shellcheck-wasm package |
|
🎉 This PR is included in version 0.2.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.
Summary
Replace the hand-bumped version + pushed
v*tag with semantic-release. A push tomainpublishes to thelatestdist-tag; a push tonextpublishesx.y.z-next.nto thenextdist-tag with a prerelease GitHub Release.Changes
release.config.js: branchesmainandnext(prerelease).conventionalcommitspreset, because the default angular preset ignoresfeat!:. A breaking change is a minor bump while the package is 0.x (semantic-release would otherwise jump to 1.0.0).release.yml: runs on push tomain/next. It callsci.yml(nowworkflow_call), then runssemantic-release, which publishes through Trusted Publishing (OIDC,@semantic-release/npm13) and uploadsshellcheck.wasm,.sha256andbuild-info.json. The workflow file name staysrelease.yml, so the npm-side Trusted Publisher config does not change.ci.yml: no longer runs on push tomain, becauserelease.ymlruns it there. It only cancels in-progress runs for PRs.package.json: version is0.0.0-semantic-releaseand is never committed back.publishConfig.provenance: true.conventional-changelog-conventionalcommitsis pinned to^9. v10 needsconventional-changelog-writer@9, andrelease-notes-generator14 still ships writer 8, so v10 fails at notes generation.bump-shellcheck.yml: PR titlechore(wasm)→feat(wasm), so that merging a ShellCheck bump cuts a release.Before merging
mainpublishes0.2.0tolatest. The analyzer sees thefeat!/featcommits sincev0.1.1. If that is not wanted yet, createnextfrommainand merge this PR there first.nextcomputes0.2.0-next.1and collides with the existing tag.^{commit}), not on the annotated tag object. semantic-release reads them withgit log %N.nextbranch on the remote.Dry-run evidence
This is semantic-release
--dry-runwith thisrelease.config.js(analyzer + notes plugins), run against a local mirror of the real tag history:0.2.0(lastv0.1.1)0.2.0-next.1← collideschore/cisincev0.2.0-next.1)fix:0.2.0-next.2(lastv0.2.0-next.1)The first
0.2.0notes will contain a noisy BREAKING CHANGES section, because the squash body of #21 containsBREAKING CHANGE:footers from its sub-commits. Edit the GitHub Release by hand if that matters.