Releasing a New Version
This project uses semantic-release
to fully automate releases — including versioning, zip packaging, Git commits, and GitHub Releases.
There are no manual steps needed.
✅ What Happens on Release
When you push or merge into main
with Conventional Commits (e.g., feat:
, fix:
), the following steps are triggered via GitHub Actions:
- Version Analysis
- Determines the next semantic version from commit history
- File Updates
- Runs:
node scripts/update-version.js <version> node scripts/package-zip.cjs <version>
- This updates:
package.json
public/manifest.json
- Creates:
twitch-user-notes-v<version>.zip
- Runs:
- Git Commit
- Commits the updated files with a release message:
chore(release): 1.3.0 [skip ci] ### Features - Added XYZ...
- Commits the updated files with a release message:
- GitHub Release
- Tags the release (e.g.
v1.3.0
) - Publishes a GitHub Release with changelog and zip file
- Tags the release (e.g.
🔧 Plugins Used in release.config.cjs
Plugin | Role |
---|---|
@semantic-release/commit-analyzer | Reads commit messages to determine next version |
@semantic-release/release-notes-generator | Generates changelog |
@semantic-release/exec | Runs version and zip scripts |
@semantic-release/git | Commits package.json and manifest.json with changelog |
@semantic-release/github | Uploads zip to GitHub release as asset |
🧪 Example
Given a commit like:
git commit -m "feat: add user note editing from options screen"
When merged into main
, the release pipeline will:
- Publish version
1.x.x
as needed - Tag the commit
- Create a GitHub Release
- Attach
twitch-user-notes-v1.x.x.zip
📦 Result
A fully automated pipeline with:
- Updated source files
- Tagged version history
- GitHub release page
- Web Store–ready
.zip
asset
You can always inspect or tweak this behavior via:
.github/workflows/release.yml
release.config.cjs