Skip to content
Snippets Groups Projects
Select Git revision
  • 91b6fcc77552e9425798f6967baa9154905761d4
  • master default protected
  • 1.31
  • 4.38.8
  • 4.38.7
  • 4.38.6
  • 4.38.5
  • 4.38.4
  • 4.38.3
  • 4.38.2
  • 4.38.1
  • 4.38.0
  • 4.37.2
  • 4.37.1
  • 4.37.0
  • 4.36.0
  • 4.35.0
  • 4.34.1
  • 4.34.0
  • 4.33.1
  • 4.33.0
  • 4.32.2
  • 4.32.1
23 results

release.nix

Blame
  • release.nix 2.46 KiB
    {pkgs', ...}: let
      bashFktScript = import ./bash-fkt.nix {
        inherit pkgs';
      };
    
      updateChangelogScript = import ./update-changelog.nix {
        inherit pkgs';
      };
    in
      pkgs'.writeShellScriptBin "release" ''
    
        source ${pkgs'.common}/bin/common
        ${bashFktScript}
    
        echo_header "Release "
    
        if [ -z "$CI_REPOSITORY_URL" ]; then
            echo_fail "Error: CI_REPOSITORY_URL environment variable is not set."
            exit 1
        fi
    
        if [ -z "$CI_PROJECT_DIR" ]; then
            echo_fail "Error: CI_PROJECT_DIR environment variable is not set."
            exit 1
        fi
    
        cd $CI_PROJECT_DIR || exit 1
    
        ${pkgs'.git}/bin/git remote set-url origin https://''${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
            echo_fail "Error: Could not get git log."
            exit 1
        fi
    
        ${pkgs'.git}/bin/git fetch --prune --prune-tags
    
        echo_step "Bumping version"
        gitVersion=$(${pkgs'.version}/bin/version predict --exit-code-if-no-bump)
        if [ -z "$gitVersion" ]; then
            echo_ok "There is no version bump."
            echo_ok "done"
            exit 0
        fi
    
        echo_step "Write project version"
    
        export VERSION=$gitVersion
        export COMMIT="$CI_COMMIT_SHA"
        export NAME=$(basename $(pwd) | sed 's/./\U&/' | sed 's/-//g')
        export MNEMONIC=$(echo $NAME | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]//g')
        ${pkgs'.envsubst}/bin/envsubst < ./nix/config/release.nix.template > ./nix/config/release.nix
        
        ${pkgs'.nodejs_22}/bin/npm version "$gitVersion"
    
    
        ${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion"
        ${updateChangelogScript}/bin/update-changelog
        cd $CI_PROJECT_DIR || exit 1
    
        ${pkgs'.git}/bin/git tag -d "$gitVersion"
        ${pkgs'.git}/bin/git commit -m "chore: release $gitVersion" CHANGELOG.md ./nix/config/release.nix package.json