82 lines
3.3 KiB
Bash
82 lines
3.3 KiB
Bash
#!/bin/bash
|
|
echo "--------------------------------------"
|
|
#export MODULE_VERSION=$(xmllint --xpath "/*[local-name()='project']/*[local-name()='version']/text()" pom.xml)
|
|
export MODULE_VERSION=$(xmllint --xpath "/*[local-name()='project']/*[local-name()='properties']/*[local-name()='revision']/text()" pom.xml)
|
|
#export SPRING_BOOT_VERSION=3.2.5
|
|
export HUB_PROJECT=qdxwl
|
|
export MODULE_START=.
|
|
export NAMESPACE=qdxwl
|
|
#export MODULE_NAME=$(xmllint --xpath "/*[local-name()='project']/*[local-name()='artifactId']/text()" pom.xml)
|
|
export MODULE_NAME=middleware-agent
|
|
export TRIMMED_MESSAGE=""
|
|
export GIT_VERSION=""
|
|
|
|
export DIR_DEPLOY="deploy"
|
|
|
|
init() {
|
|
echo "设置项目基本信息"
|
|
# export JAVA_HOME=/nasdata/jenkins/tools/jdk-17.0.6
|
|
echo "-------------JDK 环境变量 JAVA_HOME: ${JAVA_HOME}"
|
|
docker login -u cmaqb -p "${cmaqb}" hub.komect.com:10443
|
|
echo "-------------登陆 harbub"
|
|
LATEST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
|
|
TRIMMED_MESSAGE=$(echo "${LATEST_COMMIT_MESSAGE}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
echo "-------------获取 git message ${TRIMMED_MESSAGE}"
|
|
GIT_VERSION=$(git describe --abbrev=8 --tags --always)
|
|
echo "-------------获取 git abbrev ${GIT_VERSION}"
|
|
}
|
|
|
|
download_kubernetes_config() {
|
|
# svn export --force http://svn.komect.net/aqb/YJSP/docs/工程/能力平台/4实现文档/cicd/kube/kube-config.yml ./ --username cmaqb --password ${cmaqb} --no-auth-cache
|
|
echo "-------------获取 kube-config.yml"
|
|
}
|
|
|
|
deploy(){
|
|
echo "mvn -v"
|
|
mvn -v
|
|
echo "部署 ${MODULE_NAME}"
|
|
mvn clean install -Dmaven.test.skip
|
|
# 检查Maven命令的退出状态
|
|
if [ $? -eq 0 ]; then
|
|
echo "Maven build succeeded."
|
|
else
|
|
echo "Maven build failed."
|
|
exit 1
|
|
fi
|
|
|
|
# mvn spring-boot:build-image -f ${MODULE_START}/pom.xml
|
|
mvn -f "${MODULE_START}/pom.xml" clean -Dmaven.test.skip=true org.springframework.boot:spring-boot-maven-plugin:build-image
|
|
# mvn -f "${MODULE_START}/pom.xml" clean -Dmaven.test.skip=true org.springframework.boot:spring-boot-maven-plugin:"${SPRING_BOOT_VERSION}":build-image
|
|
export IMAGE=hub.komect.com:10443/"${HUB_PROJECT}/${MODULE_NAME}:${MODULE_VERSION}-${GIT_VERSION}"
|
|
echo "模块名称 ${MODULE_NAME}, 镜像名称 ${IMAGE}"
|
|
|
|
docker push "${IMAGE}"
|
|
|
|
# 如果存在application.properties,潜在的密文内容,做base64编码
|
|
# export SECRET_BASE64_DATA=""
|
|
# if [ -e "./src/main/resources/application-dev.properties" ]; then
|
|
# export SECRET_BASE64_DATA=$(base64 -w 0 ./src/main/resources/application-dev.properties)
|
|
# fi
|
|
|
|
# 存在configmap.yml,则执行configmap部署
|
|
if [ -e "k8s/${DIR_DEPLOY}/configmap.yml" ]; then
|
|
envsubst < k8s/${DIR_DEPLOY}/configmap.yml | kubectl apply --kubeconfig=k8s/kube/kube-config.yml -f -
|
|
fi
|
|
|
|
# 存在secret.yml,则执行secret部署
|
|
if [ -e "k8s/${DIR_DEPLOY}/secret.yml" ]; then
|
|
envsubst < k8s/${DIR_DEPLOY}/secret.yml | kubectl apply --kubeconfig=k8s/kube/kube-config.yml -f -
|
|
fi
|
|
|
|
envsubst < k8s/${DIR_DEPLOY}/deployment.yml | kubectl apply --kubeconfig=k8s/kube/kube-config.yml -f -
|
|
# envsubst < k8s/${DIR_DEPLOY}/service.yml | kubectl apply --kubeconfig=k8s/kube/kube-config.yml -f -
|
|
}
|
|
|
|
init
|
|
download_kubernetes_config
|
|
|
|
if [[ "${TRIMMED_MESSAGE}" != *-A* ]] && [[ "${TRIMMED_MESSAGE}" == *-d* ]]; then
|
|
echo "包含 -d 执行部署"
|
|
deploy
|
|
fi
|