mirror of
https://gh-proxy.org/https://github.com/softprops/action-gh-release.git
synced 2026-07-15 23:13:02 +08:00
d100e75a45
Signed-off-by: Rui Chen <rui@chenrui.dev>
3.3 KiB
3.3 KiB
Release Workflow
Use this checklist when cutting a new action-gh-release release.
Inputs
- Decide the semantic version bump first:
major,minor, orpatch. - Review recent merged PRs and labels before drafting the changelog entry.
- Make sure
masteris current and the worktree is clean before starting.
Checklist
- Update package.json to the new version.
- Add the new entry at the top of CHANGELOG.md.
- Summarize the release in 1 short paragraph.
- If the summary mentions issues, use plain
#123references or full issue links; do not wrap issue numbers like#123in backticks. - Prefer user-facing fixes and features over internal churn.
- Keep the merged PR list aligned with
.github/release.ymlcategories.
- Run
npm ito refresh package-lock.json. - Run the full local verification set:
npm run fmtchecknpm run typechecknpm run buildnpm test
- Commit the release prep.
- Use
git commit -sso the release commit carries a DCO sign-off. - Use a plain release commit message like
release X.Y.Z.
- Use
- Push a release branch and open a pull request against
master.- Wait for required checks and reviews.
- Do not bypass branch protection or tag an unmerged release branch.
- After merge, fetch
origin/masterand resolve the exact merged release commit.- Confirm that commit contains the expected package version and top changelog entry.
- When the PR is squash-merged, do not assume the release branch commit is the release commit.
- Create and push the full annotated version tag on the merged release commit.
- Example:
git tag -a vX.Y.Z -m "vX.Y.Z" <release-commit> - Push only the full version tag first, then wait for its tag-triggered CI to pass.
- Example:
- Move the floating major tag to the same merged release commit.
- For the current major line, run
npm run updatetagto movev3. - Do not move
v2; it is frozen at the final, unsupportedv2.6.2release. - Verify
v3and the full version tag are annotated and peel to the same commit. - Verify
v2did not move, then wait for the separatev3tag-triggered CI run to pass.
- For the current major line, run
- Create the GitHub release from the full version tag.
- Prefer the release body from CHANGELOG.md, then let GitHub append generated notes only if they add value.
- Verify the release shows the expected tag, title, notes, draft/prerelease state, and attached artifacts.
- Run post-release consumer verification in
ruitest2/action-gh-release-test.
- Run the generic smoke against both the full version tag and
v3. - Run regression workflows relevant to the fixes in the release.
- Confirm that every disposable release, tag, discussion, container, volume, and temporary credential was cleaned up.
Notes
- Behavior changes should already have matching updates in README.md, action.yml, tests, and
dist/index.jsbefore release prep begins. - Docs-only releases still need an intentional changelog entry and version bump decision.
- If a release is mainly bug fixes, keep the title and summary patch-oriented; do not bury the actual fixes under dependency noise.
- Do not move the floating major tag or publish the GitHub release until the full version tag's CI passes.