From 24a56728bcabd1a0dc3994b7733562386d36b61e Mon Sep 17 00:00:00 2001
From: Gin Derick Magno <gmagno@stratpoint.com>
Date: Tue, 27 Jun 2023 07:20:16 +0000
Subject: [PATCH] Update .gitlab-ci.yaml

---
 .gitlab-ci.yaml | 76 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 69 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yaml b/.gitlab-ci.yaml
index be5a59f..3b32748 100644
--- a/.gitlab-ci.yaml
+++ b/.gitlab-ci.yaml
@@ -1,13 +1,75 @@
+image: node
+
 stages:
+  - check_build
   - build
+  - set_tag
+  
+build:
+  stage: build
+  script:
+    - npm install
+  only:
+    - /^koda-chm-.*-stg$/
+    - /^koda-chm-.*-dev$/
 
-variables:
-  VERSION: "1.0.0"
+.setup:
+  before_script:
+    - LATEST_BUILD="$(tail -n 1 build.log)"
+    - ENVIRONMENT=$(echo "$CI_COMMIT_REF_NAME" | awk -F '-' '{print $NF}')
+    - PROJECT_NAME="${LATEST_BUILD%%-*}"
+    - PROJECT_NAME_WITH_ENV="${LATEST_BUILD%%-*}.$ENVIRONMENT"
+    - FORMATTED_PROJECT_NAME="${PROJECT_NAME_WITH_ENV//./-}"
+    - echo $FORMATTED_PROJECT_NAME
+    - CURRENT_DATE=$(date +%Y.%m.%d)
+    - VERSION=$(echo "$LATEST_BUILD" | awk -F '-' '{print $NF}')
+    - NEW_VERSION="${VERSION%.*}.$((${VERSION##*.} + 1))"
+    - NEW_BUILD="${PROJECT_NAME_WITH_ENV}-${CURRENT_DATE}-${NEW_VERSION}"
+    - NEW_BUILD_LOG="${PROJECT_NAME}-${CURRENT_DATE}-${NEW_VERSION}"
 
-build_job:
-  stage: build
+check_build:
+  extends: .setup
+  stage: check_build
+  script:
+    - if [[ "$CI_COMMIT_REF_NAME" != "$FORMATTED_PROJECT_NAME" ]]; then exit 1; fi
+  only:
+    - /^koda-chm-.*-stg$/
+    - /^koda-chm-.*-dev$/
+
+
+.tag:
+  extends: .setup
+  stage: set_tag
+
+
+set-tag-dev:
+  extends: .tag
+  script:
+    - |
+      echo "$NEW_BUILD_LOG" | tee -a build.log
+      git status
+      git fetch --tags
+      echo "$CI_COMMIT_REF_NAME"
+      git add build.log
+      # "[ci skip]" and "-o ci-skip" prevent a CI trigger loop
+      git commit -m "[ci skip] updated build $NEW_BUILD"
+      git push -o ci-skip https://oauth2:$ACCESS_TOKEN@gitlab.com/test-group1430/runner-testing.git HEAD:$CI_COMMIT_REF_NAME
+      #Tag commit (can be used without commiting files)
+      git tag "$NEW_BUILD"      
+      git push --tags https://oauth2:$ACCESS_TOKEN@gitlab.com/test-group1430/runner-testing.git HEAD:$CI_COMMIT_REF_NAME
+  only:
+    - /^koda-chm-.*-dev$/
+
+set-tag-stg:
+  extends: .tag
   script:
-    - echo "Building version $VERSION"
-    - make build
+    - | 
+      git status
+      git fetch --tags
+      echo "$CI_COMMIT_REF_NAME"
+      #Tag commit (can be used without commiting files)
+      git tag "$NEW_BUILD"      
+      git push --tags https://oauth2:$ACCESS_TOKEN@gitlab.com/test-group1430/runner-testing.git HEAD:$CI_COMMIT_REF_NAME
+      
   only:
-    - main # Run the job only for the master branch (customize as needed)
+    - /^koda-chm-.*-stg$/
-- 
GitLab