From b37635505f088d75e0958bada0e8d260a11915fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Tue, 14 Nov 2023 19:04:26 +0100
Subject: [PATCH] CI/CD => Add test release

---
 ExerciseChecker/.gitlab-ci/00_vars.yml       |  5 +++++
 ExerciseChecker/.gitlab-ci/01_functions.yml  | 15 +++++++++++++--
 ExerciseChecker/.gitlab-ci/03_stages.yml     |  5 ++++-
 ExerciseChecker/.gitlab-ci/05_stageTest.yml  |  2 +-
 ExerciseChecker/.gitlab-ci/06_stageBuild.yml |  2 +-
 5 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/ExerciseChecker/.gitlab-ci/00_vars.yml b/ExerciseChecker/.gitlab-ci/00_vars.yml
index 46cb27b..1fcea07 100644
--- a/ExerciseChecker/.gitlab-ci/00_vars.yml
+++ b/ExerciseChecker/.gitlab-ci/00_vars.yml
@@ -6,9 +6,14 @@ variables:
     DOCKER_TLS_CERTDIR:
     DOCKER_DRIVER: overlay2
 
+    DOCKER_REGISTRY: docker.io
+    DOCKER_REGISTRY_USER: dojohesso
+    DOCKER_REGISTRY_IMAGE: dojohesso/dojo_exercise_checker
+
     PROJECT_NAME: DojoExerciseChecker
 
     VERSION_DEV_SUFFIX: '-dev'
+    VERSION_TEST_SUFFIX: '-test'
 
     GITLAB_API_PROJECT_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}
 
diff --git a/ExerciseChecker/.gitlab-ci/01_functions.yml b/ExerciseChecker/.gitlab-ci/01_functions.yml
index f0675a5..2b482cb 100644
--- a/ExerciseChecker/.gitlab-ci/01_functions.yml
+++ b/ExerciseChecker/.gitlab-ci/01_functions.yml
@@ -1,7 +1,18 @@
-.get_version:
+.get_vars:
     script:
         - IS_DEV=$([[ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ]] && echo false || echo true)
-        - VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '')
+        - IS_TEST=$([[ $CI_COMMIT_BRANCH == "test" ]] && echo false || echo true)
+        - |
+            if [ $IS_TEST == "true" ]; then
+                DOCKER_REGISTRY_USER=dojohessotest
+                DOCKER_REGISTRY_IMAGE=dojohesso/test-dojo_exercise_checker
+                DOCKER_REGISTRY_PASSWORD=$DOCKER_TEST_REGISTRY_PASSWORD
+            fi
+
+
+.get_version:
+    script:
+        - VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '')$([[ $IS_TEST == true ]] && echo $VERSION_TEST_SUFFIX || echo '')
 
 
 .get_packages_url:
diff --git a/ExerciseChecker/.gitlab-ci/03_stages.yml b/ExerciseChecker/.gitlab-ci/03_stages.yml
index 198b85a..a996eca 100644
--- a/ExerciseChecker/.gitlab-ci/03_stages.yml
+++ b/ExerciseChecker/.gitlab-ci/03_stages.yml
@@ -4,4 +4,7 @@ stages:
     - build
     - clean
     - upload
-    - release
\ No newline at end of file
+    - release
+
+before_script:
+    - !reference [ .get_vars, script ]
\ No newline at end of file
diff --git a/ExerciseChecker/.gitlab-ci/05_stageTest.yml b/ExerciseChecker/.gitlab-ci/05_stageTest.yml
index a1b5642..ccb013b 100644
--- a/ExerciseChecker/.gitlab-ci/05_stageTest.yml
+++ b/ExerciseChecker/.gitlab-ci/05_stageTest.yml
@@ -9,4 +9,4 @@ test:build:
     script:
         - !reference [ .build_script, script ]
     rules:
-        -   if: '$CI_COMMIT_TAG =~ "/^$/" && $CI_COMMIT_REF_PROTECTED != "true"'
\ No newline at end of file
+        -   if: '$CI_COMMIT_TAG =~ "/^$/" && $CI_COMMIT_REF_PROTECTED != "true" && $CI_COMMIT_BRANCH != "test"'
\ No newline at end of file
diff --git a/ExerciseChecker/.gitlab-ci/06_stageBuild.yml b/ExerciseChecker/.gitlab-ci/06_stageBuild.yml
index e2acdd1..a0c6ca4 100644
--- a/ExerciseChecker/.gitlab-ci/06_stageBuild.yml
+++ b/ExerciseChecker/.gitlab-ci/06_stageBuild.yml
@@ -12,4 +12,4 @@ build:version:
         # Here docker buildx can use cached images created in previous step
         - docker buildx build --platform $DOCKER_PLATFORMS --file $DOCKERFILE --push --tag $CONTAINER_IMAGE .
     rules:
-        -   if: '$CI_COMMIT_REF_PROTECTED == "true"'
\ No newline at end of file
+        -   if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_COMMIT_BRANCH == "test"'
\ No newline at end of file
-- 
GitLab