Implement [ci skip release] in the CI pipeline
Make it possible to skip release when pushing changes to the repo. Our README.md currently documents that we can skip releases by adding "ci skip release" keyword to the commit message.

Reference example: https://github.com/shipkit/shipkit-auto-version/commit/7a8ada573e3d8f183b9101b716a261612db30f87
.github/workflows/ci.yml
.github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d8a3b831f6..db9a46240d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,3 +1,10 @@
+#
+# CI build that assembles artifacts and runs tests.
+# If validation is successful this workflow releases from the main dev branch.
+#
+# - skipping CI: add [skip ci] to the commit message
+# - skipping release: add [skip release] to the commit message
+#
 name: CI
 
 on:
@@ -14,6 +21,7 @@ jobs:
   #
   build:
     runs-on: ubuntu-latest
+    if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
     
     # Definition of the build matrix
     strategy:
@@ -61,10 +69,15 @@ jobs:
   # Release job, only for pushes to the main development branch
   #        
   release:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-latest    
     needs: [build] # build job must pass before we can release
-    if: github.event_name == 'push' && github.ref == 'refs/heads/release/3.x'
+    
+    if: github.event_name == 'push' 
+        && github.ref == 'refs/heads/release/3.x'
+        && !contains(toJSON(github.event.commits.*.message), '[skip release]')
+    
     steps:
+   
     - name: Check out code
       uses: actions/checkout@v2 # https://github.com/actions/checkout
       with:
