This repository uses a streamlined approach to automatic versioning, changelog generation, and releases based on conventional commits.
- Triggers: Push to
mainbranch - Purpose: Automatic versioning and release management
- Features:
- Calculates next version from conventional commits
- Updates
package.jsonautomatically - Generates high-quality changelog
- Creates git tags and GitHub releases
- Uses Changesets for professional package management
- Triggers: PR opened, edited, or new commits
- Purpose: Ensures commit messages follow conventional format
- Features:
- Validates all commits in PR
- Comments with validation results
- Provides fix instructions for invalid commits
- Updates comment automatically on new commits
- Triggers: New git tags created
- Purpose: Runs development and production builds
- Features:
- Development build runs automatically
- Production build requires manual approval
- Environment-based approval workflow
Use conventional commit format for automatic versioning:
# Feature (minor version bump)
git commit -m "feat: add user authentication"
# Bug fix (patch version bump)
git commit -m "fix: resolve login issue"
# Breaking change (major version bump)
git commit -m "feat!: redesign API
BREAKING CHANGE: API endpoints have changed"
# Maintenance (patch version bump)
git commit -m "chore: update dependencies"- Create PR with conventional commits
- PR validation automatically checks commit format
- Fix any invalid commits if needed
- Merge PR to
main - Release workflow automatically:
- Calculates next version
- Updates
package.json - Generates changelog
- Creates tag and GitHub release
| Commit Type | Version Bump | Example |
|---|---|---|
feat: |
Minor (1.0.0 → 1.1.0) | feat: add new feature |
fix: |
Patch (1.0.0 → 1.0.1) | fix: resolve bug |
BREAKING CHANGE: |
Major (1.0.0 → 2.0.0) | feat!: breaking change |
chore:, docs:, style:, refactor:, perf:, test: |
Patch | chore: update deps |
GITHUB_TOKEN(automatically provided)NPM_TOKEN(if publishing to npm)
- Create
productionenvironment in GitHub for manual approval - Configure reviewers for production builds
package.json- Version automatically updatedCHANGELOG.md- Persistent changelog maintained- Git tags - New version tags created
- GitHub Releases - Releases with changelog created
✅ Zero developer overhead - just write conventional commits
✅ Automatic versioning - no manual version management
✅ Professional changelogs - high-quality changelog generation
✅ PR validation - ensures commit format compliance
✅ Build automation - development and production builds
✅ Manual approval - production builds require approval
- Check if commit message contains
[skip ci] - Ensure you're pushing to
mainbranch - Check Actions tab for any errors
- Verify commit messages follow conventional format
- Check if commits are actually new since last tag
- Look at workflow logs for semver calculation details
- Update commit messages to follow conventional format
- Use interactive rebase to fix commit messages
- Force push after changes