From 29bc3718e311530c1c3bfdb06691a1e2717c89e9 Mon Sep 17 00:00:00 2001
From: Stefan Hauffe <stefan.hauffe@mgm-tp.com>
Date: Wed, 18 Dec 2024 17:52:24 +0100
Subject: [PATCH] OZG-7324: Add version checks

---
 alfa-client/apps/admin/Jenkinsfile | 19 +++++++++++++++++++
 alfa-client/apps/info/Jenkinsfile  | 29 +++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/alfa-client/apps/admin/Jenkinsfile b/alfa-client/apps/admin/Jenkinsfile
index 5f3f5ae78e..355357c2a7 100644
--- a/alfa-client/apps/admin/Jenkinsfile
+++ b/alfa-client/apps/admin/Jenkinsfile
@@ -315,4 +315,23 @@ String getElementAccessToken() {
     withCredentials([string(credentialsId: 'element-login-json', variable: 'LOGIN_JSON')]) {
         return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token
     }
+}
+
+Boolean isReleaseVersion(List versions) {
+  return matchRegexVersion(versions, RELEASE_REGEX)
+}
+
+Boolean isSnapshotVersion(List versions) {
+  return matchRegexVersion(versions, SNAPSHOT_REGEX)
+}
+
+Boolean matchRegexVersion(List versions, String regex) {
+  for (version in versions) {
+    println version
+    if ( !(version ==~ regex) ) {
+      return false
+    }
+  }
+
+  return true
 }
\ No newline at end of file
diff --git a/alfa-client/apps/info/Jenkinsfile b/alfa-client/apps/info/Jenkinsfile
index 9d859c2087..91de266aa5 100644
--- a/alfa-client/apps/info/Jenkinsfile
+++ b/alfa-client/apps/info/Jenkinsfile
@@ -26,6 +26,16 @@ pipeline {
           FAILED_STAGE = env.STAGE_NAME
           dir('alfa-client') {
             VERSION = getInfoPackageJsonVersion()
+
+            if(isReleaseBranch()){
+              if ( !isReleaseVersion([VERSION]) ) {
+                error("Keine Release Version für Branch ${env.BRANCH_NAME}.")
+              }
+            } else {
+              if ( !isSnapshotVersion([VERSION]) ) {
+                error("Keine Snapshot Version für Branch ${env.BRANCH_NAME}.")
+              }
+            }
           }
         }
       }
@@ -294,4 +304,23 @@ String getElementAccessToken() {
     withCredentials([string(credentialsId: 'element-login-json', variable: 'LOGIN_JSON')]) {
         return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token
     }
+}
+
+Boolean isReleaseVersion(List versions) {
+  return matchRegexVersion(versions, RELEASE_REGEX)
+}
+
+Boolean isSnapshotVersion(List versions) {
+  return matchRegexVersion(versions, SNAPSHOT_REGEX)
+}
+
+Boolean matchRegexVersion(List versions, String regex) {
+  for (version in versions) {
+    println version
+    if ( !(version ==~ regex) ) {
+      return false
+    }
+  }
+
+  return true
 }
\ No newline at end of file
-- 
GitLab