Skip to content

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

Guide

  1. Fire-up release-me git tag event

    export _tag=release-me
    git tag -d "$_tag"; git push --delete origin "$_tag";
    git tag "$_tag" && git push origin "$_tag"
    
  2. Wait for PR to open against base main branch, from head release branch

  3. Sync release branch to local checkout

    export release=release
    
    git fetch
    git branch --track $release "origin/${release}" || true
    git checkout "${release}"
    git pull origin "${release}"
    
  4. Derive Release Semantic Version

    Please enter the new Semantic Release Version, you intend to publish:


  • Input Release Semantic Version; ie 1.2.1

  • Automation currently supports


    • <M.m.p> for Public Changes

      Eg: 1.0.0, 1.2.1, 0.5.0

    • <M.m.p-dev\d?\> for Private Changes

      Eg: 1.0.1-dev, 1.2.1-dev2,
      0.5.0-dev1

  1. Update Changelog (1)
    code CHANGELOG.md
    git add CHANGELOG.md && git commit -m "chore(changelog): add v... Changelog Release Entry"
    git push origin release
  2. If you maintain the Sem Ver in your source files, update Sem Ver in sources (2)
  3. Fire-up an auto-prod-<sem ver> git tag event (ie auto-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"
    
  4. If, you have setup Human Approval, give the Release a green light, by approving a Code Review.
  1. 🙋‍♂️ Typically the CHANGELOG.md file!

  2. 🙋‍♂️ 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 main branch with remote

    git checkout main && git pull origin main