Files
ECShopX/gitlab-ci/functions
2025-12-29 22:14:41 +08:00

107 lines
2.3 KiB
Bash

#!/bin/bash
log() {
echo -e "$(date "+%T.%2N") ${@}"
}
info() {
log "INFO ==> ${@}"
}
warn() {
log "WARN ==> ${@}"
}
error() {
2>&1 log "ERROR ==> ${@}"
}
vercmp() {
if [[ $1 == $2 ]]; then
echo "0"
else
if [[ $( ( echo "$1"; echo "$2" ) | sort -rV | head -n1 ) == $1 ]]; then
echo "-1"
else
echo "1"
fi
fi
}
docker_login() {
local registry=${1}
local username=${2}
local password=${3}
info "Authenticating with ${registry}..."
docker login $registry -u $username -p $password
}
git_configure() {
local GIT_DEPLOY_KEY_NAME=$1
local GIT_DEPLOY_KEY=$2
local SSH_CONFIG_DIR=~/.ssh
echo $GIT_DEPLOY_KEY | base64 -d > $SSH_CONFIG_DIR/${GIT_DEPLOY_KEY_NAME}.key
if [ ! -f $SSH_CONFIG_DIR/config ]; then
touch $SSH_CONFIG_DIR/config
fi
if ! cat $SSH_CONFIG_DIR/config | grep -qi custom_config; then
echo 'Include ~/.ssh/custom_config' | cat - $SSH_CONFIG_DIR/config | tee $SSH_CONFIG_DIR/config
fi
{ \
echo "HOST git.ishopex.cn"; \
echo " RSAAuthentication yes"; \
echo " IdentityFile $SSH_CONFIG_DIR/${GIT_DEPLOY_KEY_NAME}.key"; \
} > $SSH_CONFIG_DIR/custom_config
chmod 644 $SSH_CONFIG_DIR/config
chmod 644 $SSH_CONFIG_DIR/custom_config
chmod 600 $SSH_CONFIG_DIR/${GIT_DEPLOY_KEY_NAME}.key
}
update_chart_in_repo() {
local GITLAB_USER=$1
local GITLAB_PASSSWORD=$2
local REPO_TO_UPDATE="${1%.git}.git"
local CART_PATH=.
exit 1
info "Cloning '$REPO_TO_UPDATE' repo..."
if ! git clone --quiet --single-branch $REPO_TO_UPDATE charts; then
error "Could not clone $REPO_TO_UPDATE..."
exit 1
fi
cd charts
if [ ! -f $CART_PATH/Chart.yaml ]; then
error "Chart values not exist"
exit 1
fi
if [[ -z $GITHUB_USER || -z $GITHUB_PASSWORD ]]; then
error "GitHub credentials not configured. Aborting..."
exit 1
fi
git_configure $GITLAB_USER $GITLAB_PASSSWORD
local CHART_VERSION=$(grep '^version:' $CHART_PATH/Chart.yaml | awk '{print $2}')
local CHART_VERSION_TO_UPDATE="${CHART_VERSION%.*}.$((${CHART_VERSION##*.}+1))"
}
# ¿æ
#
#image: https://my-registry.com/my-image:${IMAGE_TAG}
#
#def kubeSubst(placeholder, value, file) {
# sh "sed -i.bak s/:\\\${$placeholder}/:$value/g $file.yml"
#}
#
#}