Release process
Changes reach production through tagged releases, not by merging.
PR (conventional commits) -> Check PR -> merge to main -> staging
-> release PR merged -> vX.Y.Z tag + GitHub Release -> production branch -> productionStaging and production
- Pull requests run
Check PR(see Quality gates). Add theDeploy Previewlabel to get a Vercel preview.scripts/vercel-ignore.shbuilds a pull request only when it carries that label. - Merging to
maindeploys staging atstaging.antmejia.com. Staging servesnoindexmetadata throughNEXT_PUBLIC_APP_ENV=staging. - Production is the
productionbranch, and Vercel builds it as the production deployment atantmejia.com. Only tagged releases reach it.
Releases
Release Please (.github/workflows/release-please.yml) keeps one release pull request open on main. It reads the conventional commits since the last release, bumps package.json, and updates CHANGELOG.md:
featproduces a minor version,fixa patch, andfeat!or aBREAKING CHANGEfooter a major one.- Types such as
chore,docs,test,style,refactor,buildandciare hidden from the changelog.
Merging the release pull request creates the vX.Y.Z tag and a GitHub Release. In the same workflow run, the Promote to Production workflow (.github/workflows/promote-production.yml) fast-forwards the production branch to that tag. It runs in the same run because events created with the default GITHUB_TOKEN do not start other workflows.
If a RELEASE_PLEASE_TOKEN secret (a fine-grained personal access token) exists, release-please uses it, and CI then also runs on the release pull request. Without it, the release pull request works, but CI does not run on it.
Roll back
In GitHub: Actions, then Promote to Production, then Run workflow. Enter an older tag, for example v1.0.0, and tick force. Production is rebuilt from that tag. To go forward again, run it with the newer tag, or merge the next release pull request.
Promoting a previous deployment in the Vercel dashboard is a faster, temporary alternative.
Settings this depends on
- Vercel project: Production Branch set to
production, thestaging.antmejia.comdomain tracking themainbranch, and a Preview environment variableNEXT_PUBLIC_APP_ENV=stagingfor themainbranch. - GitHub: Settings, Actions, Allow GitHub Actions to create and approve pull requests turned on.
The repository README keeps a shorter version of this page.