-
Ensure
main
branch is in a suitable state -
Disable branch protection for both the
main
branch and for therelease/
branches -
Create a version branch with SemVer semantics and a
release/
prefix: e.g.release/v1.0.5
orrelease/v1.0.5-b
- On latest
main
, run:git checkout -b release/vX.Y.Z
- Important: Certain git operations are ambiguous if tags and branches have the same name. Using the
release/
prefix reserves the actual version name for the tag itself; i.e. everyrelease/vX.Y.Z
branch will have a correspondingvX.Y.Z
tag.
- On latest
-
Push that branch to GitHub (if created locally)
git push origin release/vX.Y.Z
-
The release workflow will run, and create a DRAFT release if successful with all commits since the last tagged release.
-
Prune the commits that have been added to the release notes (e.g. remove any low-information commits)
-
Publish the release - this creates the git tag in the repo and marks the release as latest. It also bumps the
version
key in several projectpackage.json
files. -
Re-enable branch protection for both the
main
branch and for therelease/
branches- Note: The
Publish
operation will run the following GitHub Action, which merges therelease/vX.Y.Z
branch tomain
. Branch Protection in GitHub will cause this to fail, and why we are momentarily disabling branch protection.
- Note: The
-
A successful run of this workflow will automatically kick off the "Generate Documentation" workflow. This workflow may also be initiated at any time manually via the GitHub Actions UI (since it is configured as a
workflow_dispatch
action).- once the documentaion is generated, add them to the release assets
-
Finally rename the
AcceleratorInstaller.template.json
toAcceleratorInstaller
XXX.template.json
replacing XXX with the version number without punctuation (i.e.AcceleratorInstaller121b.template.json
)