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