Run release-me Git Ops Process
This is a how-to Guide, with everything you need, to "run" the
release-me process Git Ops Process.
Prerequisites
-
Seting Up a Repository
-
Single branch with all changes, based on
main%%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'rotateCommitLabel': true, 'showCommitLabel':true,'mainBranchName': 'main'}} }%% gitGraph commit id: "[NEW] 1.1.0" type: HIGHLIGHT tag: "v1.1.0" commit id: "[FIX] 1.1.1" type: HIGHLIGHT tag: "v1.1.1" commit id: "[DEV] 1.1.2-dev" type: HIGHLIGHT tag: "v1.1.2-dev" commit id: "[NEW] 1.2.0" type: HIGHLIGHT tag: "v1.2.0" commit id: "[NEW] 2.0.0" type: HIGHLIGHT tag: "v2.0.0" branch release branch "User Br" commit commit id: "new feat"
Recommendations
- Setting Up Recommended Policies
Guide
-
Fire-up
release-megit tag eventexport _tag=release-me git tag -d "$_tag"; git push --delete origin "$_tag"; git tag "$_tag" && git push origin "$_tag" -
Wait for PR to open against base
mainbranch, from headreleasebranch -
Sync
releasebranch to local checkoutexport release=releasegit fetch git branch --track $release "origin/${release}" || true git checkout "${release}" git pull origin "${release}" -
Derive Release Semantic Version
Please enter the new Semantic Release Version, you intend to publish:
-
Input Release Semantic Version; ie 1.2.1
- Get help in determining Version Bump, from the Decision Diagram
- Read more on Semantic Release Topic
-
Automation currently supports
-
<M.m.p>for Public ChangesEg:
1.0.0,1.2.1,0.5.0 -
<M.m.p-dev\d?\>for Private ChangesEg:
1.0.1-dev,1.2.1-dev2,
0.5.0-dev1
-
- Update Changelog (1)
code CHANGELOG.mdgit add CHANGELOG.md && git commit -m "chore(changelog): add v... Changelog Release Entry"git push origin release - If you maintain the Sem Ver in your source files, update Sem Ver in sources (2)
- Fire-up an
auto-prod-<sem ver>git tag event (ieauto-prod-1.2.0)export _SEM_VER=...export _tag="auto-prod-${_SEM_VER}" git tag -d "$_tag"; git push --delete origin "$_tag"; git tag "$_tag" && git push origin "$_tag" - If, you have setup
Human Approval, give the Release a green light, by approving a Code Review.
-
Typically the CHANGELOG.md file!
-
Typical files are,
VERSION,pyproject.toml,package.json, etc.
Congratulations 
Your changes should now be merged and tagged into main!
%%{init: { 'logLevel': 'debug', 'theme': 'gitGraph': {'rotateCommitLabel': false, 'showBranches': true, 'showCommitLabel':true, 'mainBranchName': 'main / master'}} }%%
gitGraph
commit id: "[NEW] 1.1.0" type: HIGHLIGHT tag: "v1.1.0"
commit id: "[FIX] 1.1.1" type: HIGHLIGHT tag: "v1.1.1"
commit id: "[DEV] 1.1.2-dev" type: HIGHLIGHT tag: "v1.1.2-dev"
commit id: "[NEW] 1.2.0" type: HIGHLIGHT tag: "v1.2.0"
commit id: "[NEW] 2.0.0" type: HIGHLIGHT tag: "v2.0.0"
branch release
branch "User Br"
commit
commit id: "new feat"
checkout release
merge "User Br" id: "Merge" type: HIGHLIGHT
commit id: "CHANGELOG.md" tag: "v2.1.0-rc"
checkout main
merge release id: "[NEW] 2.1.0" type: HIGHLIGHT tag: "v2.1.0"
Next Steps
-
Sync your local
mainbranch with remotegit checkout main && git pull origin main