github.com/wunderio/silta-cli@v0.0.0-20240508100559-3017e4ab3a20/tests/release-name.sh (about)

     1  #!/bin/bash
     2  
     3  export CIRCLE_PROJECT_REPONAME=""
     4  export CIRCLE_BRANCH="${1}"
     5  export RELEASE_SUFFIX="${2}"
     6  
     7  ########################################################
     8  ## Slightly modified copy of orb code
     9  
    10  # Make sure namespace is lowercase.
    11  namespace="${CIRCLE_PROJECT_REPONAME,,}"
    12  
    13  # # Create the namespace if it doesn't exist.
    14  # if ! kubectl get namespace "$namespace" &>/dev/null ; then
    15  #   kubectl create namespace "$namespace"
    16  # fi
    17  
    18  # # Tag the namespace if it isn't already tagged.
    19  # if ! kubectl get namespace -l name=$namespace --no-headers | grep $namespace &>/dev/null ; then
    20  #   kubectl label namespace "$namespace" "name=$namespace" --overwrite
    21  # fi
    22  
    23  # Make sure release name is lowercase without special characters.
    24  branchname_lower="${CIRCLE_BRANCH,,}"
    25  release_name="${branchname_lower//[^[:alnum:]]/-}"
    26  
    27  suffix_test="${RELEASE_SUFFIX}"
    28  declare -i total_length=${#suffix_test}+${#release_name}
    29  suffix=''
    30  # if [[ -n "${RELEASE_SUFFIX}" && $total_length -gt 39 ]]; then
    31  if [[ $total_length -gt 39 ]]; then
    32    suffix="${RELEASE_SUFFIX}"
    33    if [[ -n "${RELEASE_SUFFIX}" && ${#suffix} -gt 12 ]]; then
    34      suffix="$(printf "$suffix" | cut -c 1-7)-$(printf "$suffix" | shasum -a 256 | cut -c 1-4 )"
    35    fi
    36    #Maximum length of a release name + release suffix. -1 is for separating '-' char before suffix
    37    declare -i rn_max_length=40-${#suffix}-1
    38  
    39    # Length of a shortened rn_max_length to allow for an appended hash
    40    declare -i rn_cut_length=rn_max_length-5
    41  
    42    # If name is too long, truncate it and append a hash
    43    if [ ${#release_name} -ge $rn_max_length ]; then
    44      release_name="$(printf "$release_name" | cut -c 1-${rn_cut_length})-$(printf "$branchname_lower" | shasum -a 256 | cut -c 1-4 )"
    45    fi
    46  fi
    47  
    48  silta_environment_name="${CIRCLE_BRANCH,,}"
    49  
    50  if [[ -n "${RELEASE_SUFFIX}" ]]; then
    51    if [[ -n "$suffix" ]]; then
    52      # echo "Using suffix variable for release name"
    53      release_name="${release_name}-${suffix}"
    54      silta_environment_name="${CIRCLE_BRANCH,,}-${suffix}"
    55    else
    56      # echo "Using parameter for release name"
    57      release_name="${release_name}-${RELEASE_SUFFIX}"
    58      silta_environment_name="${CIRCLE_BRANCH,,}-${RELEASE_SUFFIX}"
    59    fi
    60  fi
    61  
    62  
    63  # echo "export RELEASE_NAME='$release_name'" >> "$BASH_ENV"
    64  # echo "export NAMESPACE='$namespace'" >> "$BASH_ENV"
    65  # echo "export SILTA_ENVIRONMENT_NAME='$silta_environment_name'" >> "$BASH_ENV"
    66  
    67  # echo "The release name for this branch is \"$release_name\" in the \"$namespace\" namespace"
    68  # echo "Release name: \"$release_name\""
    69  echo "${release_name}"
    70  
    71  # if helm status -n "$namespace" "$release_name" > /dev/null  2>&1
    72  # then
    73  #   current_chart_version=$(helm history -n "$namespace" "$release_name" --max 1 --output json | jq -r '.[].chart')
    74  #   echo "export CURRENT_CHART_VERSION='$current_chart_version'" >> "$BASH_ENV"
    75  
    76  #   echo "There is an existing chart with version $current_chart_version"
    77  # fi