Promoting Beta to Main
This guide explains how to promote a tested beta release to the stable main branch using the automated promotion workflow.
Overview
Promotion is a manual admin-triggered process that:
- Merges
beta→mainwith special handling - Removes the
-betasuffix from the version - Updates Interface version using Blizzard API
- Updates changelog and README badges
- Deploys documentation to GitHub Pages
- Creates a stable GitHub release
- Fast-forwards
betato matchmain
Who can promote: Repository admins only
Prerequisites
Before promoting, ensure:
- ✅ Beta release has been tested thoroughly
- ✅ All features work as expected in-game
- ✅ No critical bugs reported
- ✅ CI checks pass on beta branch
- ✅ Community feedback is positive (if applicable)
Promotion Steps
1. Test with Dry-Run (Recommended)
Always test the promotion first:
- Go to Actions → Promote Beta to Main
- Click Run workflow
- Set:
- Use workflow from:
beta - Dry run:
true✅ - Click Run workflow
What happens in dry-run: - All steps execute - No actual changes made to branches/releases - Summary shows what WOULD happen - Review output carefully
2. Run Actual Promotion
Once dry-run looks good:
- Go to Actions → Promote Beta to Main
- Click Run workflow
- Set:
- Use workflow from:
beta - Dry run:
false - Click Run workflow
3. Monitor Workflow
Watch the workflow progress:
- ✅ Pre-merge validation - Lint and package checks
- ✅ Merge beta to main - Merges with version cleanup
- ✅ Update changelog - Updates CHANGELOG.md
- ✅ Update README - Updates badges
- ✅ Deploy docs - Publishes to GitHub Pages
- ✅ Publish stable release - Creates GitHub release
- ✅ Fast-forward beta - Syncs beta to main
- ✅ Summary - Shows completion status
4. Verify Promotion
After workflow completes:
- Check main branch:
- Version in TOC should be
X.Y.Z(no-beta) - Commit history shows merge commit
-
CHANGELOG.md has stable release section
-
Check GitHub release:
- New release created with stable version
- Zip file attached
-
Not marked as prerelease
-
Check beta branch:
- Beta is now in sync with main
-
No divergence between branches
-
Check documentation:
- GitHub Pages updated
- Reflects current stable version
Version Format Changes
Before promotion (beta):
After promotion (main):
Note: Interface version is fetched from Blizzard's LIVE API (not beta)
What If Promotion Fails?
Pre-merge Validation Fails
Problem: Lint or packaging validation fails
Solution: 1. Fix issues in beta branch 2. Push fixes 3. Wait for CI to pass 4. Retry promotion
Merge Conflicts
Problem: Beta can't merge cleanly into main
Solution: 1. Manually merge main → beta locally 2. Resolve conflicts 3. Push to beta 4. Retry promotion
Stable Release Has Issues
Problem: After promotion, issues are discovered
Solution: Use the rollback workflow
- Go to Actions → Rollback Release
- Enter the release tag (e.g.,
v0.0.17) - Test with
dry_run: truefirst - Run actual rollback
What rollback does: - Reverts the promotion merge commit - Deletes the GitHub release - Deletes the release tag - Restores previous CHANGELOG.md
After Promotion
Continue Development
-
New features still go to beta first:
-
Version bump for next beta:
-
Beta releases continue automatically after merge
Hotfixes to Main
For urgent fixes to stable release:
-
Create hotfix branch from main:
-
Fix the issue and bump version:
-
Create PR to main
-
After merge, sync beta:
Promotion Checklist
Use this checklist for each promotion:
- [ ] Beta release tested in-game
- [ ] No critical bugs reported
- [ ] CI checks pass on beta
- [ ] Dry-run promotion completed successfully
- [ ] Reviewed dry-run output
- [ ] Ran actual promotion
- [ ] Verified main branch version
- [ ] Verified GitHub release created
- [ ] Verified beta fast-forwarded
- [ ] Verified documentation deployed
- [ ] Tested addon from stable release zip
- [ ] Announced release to community (if applicable)
Troubleshooting
Workflow Won't Trigger
- Ensure you're a repository admin
- Check branch protection rules
- Verify PAT_TOKEN secret is configured
Fast-Forward Fails
- Beta has diverged from main
- Manually sync:
git checkout beta && git merge main && git push
Documentation Not Deploying
- Check deploy-docs workflow status
- Verify GitHub Pages is enabled
- Check for build errors in workflow logs
Additional Resources
- CI/CD Workflows Guide - Complete workflow documentation
- Rollback Process - How to revert a promotion