From 40e4c33975a5623c7a62dd448607f19161830401 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Sun, 12 May 2024 19:55:49 +0200
Subject: [PATCH] fix: wip new pipeline

---
 flake.nix | 61 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 11 deletions(-)

diff --git a/flake.nix b/flake.nix
index 0f1bc3967..b4d4a751d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -120,20 +120,59 @@
           pkgs'.mkShell {
             #nativeBuildInputs = gitlabPackages;
 
-            #            apps.run-server = pkgs'.writeShellScriptBin "run-server" ''
-            #              ${commonScript}
-            #                      ${script-run-server}
-            #            '';
 
-            shellHook = ''
-                source ''${commonScript}
+            shellHook = let
+             
+             ciRepositoryUrl = builtins.getEnv "CI_REPOSITORY_URL";
+               ciProjectDir = builtins.getEnv "CI_PROJECT_DIR";
+               ciJobToken = builtins.getEnv "CI_JOB_TOKEN";
+               ciCommitSha = builtins.getEnv "CI_COMMIT_SHA";
+               ciCommitRefName = builtins.getEnv "CI_COMMIT_REF_NAME";
+               gitlabToken = builtins.getEnv "GITLAB_TOKEN";
+               gitlabUserEmail = builtins.getEnv "GITLAB_USER_EMAIL";
+               gitlabUserName = builtins.getEnv "GITLAB_USER_NAME";
+             
+             
+             in ''
                 
-                if [ -z "${ciJobToken}" ]; then
-                  echo_fail "You are not in a CI environment, this shell is intended for CI, but for local development"
-                  exit 1
-                fi
+    if [ -z "${gitlabToken}" ]; then
+        exit 1
+    fi
+
+    if [ -z "${ciRepositoryUrl}" ]; then
+        exit 1
+    fi
+
+    if [ -z "${ciProjectDir}" ]; then
+        exit 1
+    fi
+
+    cd ${ciProjectDir} || exit 1
+
+    ${pkgs'.git}/bin/git config --global user.email "${gitlabUserEmail}"
+    ${pkgs'.git}/bin/git config --global user.name "${gitlabUserName}"
+    ${pkgs'.git}/bin/git config --global credential.helper '!f() { echo "username=gitlab-ci-token"; echo "password=${ciJobToken}"; }; f'
+    ${pkgs'.git}/bin/git config --global pull.rebase true
+    ${pkgs'.git}/bin/git config --global http.sslVerify "false"
+
+    ${pkgs'.git}/bin/git remote set-url origin https://pad:${gitlabToken}@''${CI_REPOSITORY_URL#*@}
+
+    ${pkgs'.git}/bin/git fetch --all --tags --unshallow
+    ${pkgs'.git}/bin/git reset --hard origin/master
+    ${pkgs'.git}/bin/git clean -fd
+    ${pkgs'.git}/bin/git checkout $CI_COMMIT_REF_NAME
+    ${pkgs'.git}/bin/git pull origin $CI_COMMIT_REF_NAME
+
+    if ! ${pkgs'.git}/bin/git --no-pager log --decorate=short --pretty=oneline -n 30
+    then
+        exit 1
+    fi
+
+    ${pkgs'.git}/bin/git fetch --prune --prune-tags
+    
+    echo "YES!!!!"
+
                 
-                echo_header "Gitlab Monster Shell"
                 
             '';
           };
-- 
GitLab