From 04348702a9cdc7b642694842d5e1e6f566f94a61 Mon Sep 17 00:00:00 2001
From: Alen Zubic <alen.zubic@relaymonkey.com>
Date: Thu, 31 Aug 2023 23:18:31 +0200
Subject: [PATCH] feat: Add semantic release

---
 .gitlab-ci.yml                | 37 +++++++++++++++++++++++++++++++----
 .releaserc.json               | 28 ++++++++++++++++++++++++++
 package-semantic-release.json |  7 +++++++
 3 files changed, 68 insertions(+), 4 deletions(-)
 create mode 100644 .releaserc.json
 create mode 100644 package-semantic-release.json

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4868ca4a1..bb6d93250 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,7 +3,36 @@ variables:
   IMAGE_TAG_HELM_FILE: "helm/staging/graphpolaris-frontend/values.yaml"
   IMAGE_TAG_HELM_FILE_VARIABLE: "image.tag"
 
-include:
-  - project: 'graphpolaris/pipelines'
-    ref: main
-    file: 'docker-build-push.yml'
+#include:
+#  - project: 'graphpolaris/pipelines'
+#    ref: main
+#    file: 'docker-build-push.yml'
+
+stages:
+  - tag-release
+
+release:
+  image: node:20-bookworm-slim
+  stage: tag-release
+  tags:
+    - gp-runners
+  before_script:
+    - apt-get update && apt-get install -y --no-install-recommends git-core ca-certificates
+    - mv package.json package.json.tmp | true
+    - mv package-semantic-release.json package.json
+    - npm install
+#    - npm install -g semantic-release@21.1.1 @semantic-release/gitlab-config@12.0.1 @semantic-release/exec@6.0.3
+    - mv package.json package-semantic-release.json
+    - mv package.json.tmp package.json | true
+  script:
+    # Configuration is in .releaserc.json
+    - npx semantic-release
+#    - semantic-release
+  artifacts:
+    paths:
+      - version.txt
+  rules:
+    # Run if .releaserc.json exists
+    - exists:
+        - .releaserc.json
+#        - package-semantic-release.json
diff --git a/.releaserc.json b/.releaserc.json
new file mode 100644
index 000000000..d8cc936ea
--- /dev/null
+++ b/.releaserc.json
@@ -0,0 +1,28 @@
+{
+  "branches": [
+    "master",
+    {
+      "name": "beta",
+      "prerelease": true
+    },
+    {
+      "name": "alpha",
+      "prerelease": true
+    },
+    "feat/add-semantic-release"
+  ],
+  "extends": [
+    "@semantic-release/gitlab-config"
+  ],
+  "dryRun": true,
+  "plugins": [
+    "@semantic-release/commit-analyzer",
+    "@semantic-release/release-notes-generator",
+    [
+      "@semantic-release/exec",
+      {
+        "successCmd": "echo ${nextRelease.version} > version.txt"
+      }
+    ]
+  ]
+}
diff --git a/package-semantic-release.json b/package-semantic-release.json
new file mode 100644
index 000000000..8970f6e9c
--- /dev/null
+++ b/package-semantic-release.json
@@ -0,0 +1,7 @@
+{
+  "dependencies": {
+    "semantic-release": "^21.0.0",
+    "@semantic-release/gitlab-config": "^12.0.0",
+    "@semantic-release/exec": "^6.0.0"
+  }
+}
-- 
GitLab