Skip to content

feat(release): add manual prerelease workflow - #8

Merged
bao-cn merged 2 commits into
mainfrom
ci/manual-release-workflow
Aug 16, 2026
Merged

feat(release): add manual prerelease workflow#8
bao-cn merged 2 commits into
mainfrom
ci/manual-release-workflow

Conversation

@bao-cn

@bao-cn bao-cn commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Summary

Add a manual GitHub Actions workflow for publishing Terminal Blog prereleases from version branches.

Motivation

Releases need to be reproducible, branch-controlled, and reviewable. The repository currently documents release branches but has no supported path for building artifacts and creating a GitHub prerelease.

Implementation

  • Add a workflow_dispatch-only Release workflow.
  • Require the selected branch to match release/.
  • Require a prerelease SemVer value and a dated CHANGELOG section.
  • Run Prettier, ESLint, TypeScript, Vitest, and the production build.
  • Package a source ZIP and Linux x64 standalone archive with SHA-256 checksums.
  • Preserve the version Changelog and append GitHub-generated PR and contributor notes.
  • Accept optional related Issue numbers during manual dispatch.
  • Document the release workflow in README and CONTRIBUTING.

Behavior and compatibility

No application runtime or API behavior changes. The new workflow requires contents: write only for creating the release and tag.

Risk

Release creation is restricted to matching release/* branches, refuses existing tags, and always creates a prerelease. Failed runs cannot overwrite a published version tag.

Verification

  • npx prettier --check .
  • npm run lint
  • npx tsc --noEmit --incremental false
  • npm test (11 files, 32 tests passed)
  • npm run build
  • Parsed .github/workflows/release.yml with js-yaml.
  • Added four release-note unit tests.

Screenshots or recordings

Not applicable; this pull request changes release automation and documentation.

Checklist

  • I read and followed CONTRIBUTING.md.
  • The change is focused and contains no unrelated dependency or generated-file churn.
  • I added tests for Changelog extraction and release-note composition.
  • I ran Prettier, ESLint, TypeScript, Vitest, and the production build locally.
  • I updated README, CONTRIBUTING, and CHANGELOG.
  • This Pull Request contains no secrets, environment files, or production data.

@bao-cn
bao-cn merged commit f8c1b9f into main Aug 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant