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