with one click
spfx-release
// Automate SPFx version releases - branch, update files, commit, open PR, then tag after merge
// Automate SPFx version releases - branch, update files, commit, open PR, then tag after merge
| name | spfx-release |
| description | Automate SPFx version releases - branch, update files, commit, open PR, then tag after merge |
| disable-model-invocation | false |
| allowed-tools | Bash, Read, Edit, Grep |
| argument-hint | [version] |
Release a new SPFx version. The version argument is: $ARGUMENTS
Before making changes, verify:
git status). If there are unrelated uncommitted changes, stop and ask the user how to handle them.Dockerfile, README.md, or DevelopmentContainers.md โ if it is, the release may already be in flight; surface this and ask before continuing.v$ARGUMENTS does not already exist locally or on origin (git tag --list, git ls-remote --tags origin).Create a release branch from the latest master:
git checkout master && git pull
git checkout -b release/v$ARGUMENTS
Branch name must be valid git (no spaces, no colons).
Update version in all files โ find and replace the old version with $ARGUMENTS in:
Dockerfile (generator-sharepoint version)README.md (Available tags section โ update latest, online, and add the new version row)DevelopmentContainers.md (devcontainer.json example)grep -rn "<old-version>" to catch any other references.Commit changes with message: SPFx v$ARGUMENTS - new version updates
Squash commits on the release branch (release branch only โ never on master, since unrelated commits between the last tag and HEAD would get folded in):
git describe --tags --abbrev=0git reset --soft <last-tag>Push the branch and open a PR (confirm with user first):
git push -u origin release/v$ARGUMENTS
gh pr create --title "feat: new SPFx version v$ARGUMENTS" --body "..."
After the PR merges, create and push the tag against the merged commit on master:
git checkout master && git pull
git tag v$ARGUMENTS
git push origin v$ARGUMENTS
Confirm with the user before pushing the tag.
Always confirm with the user before any push or PR creation.