mirror of
https://git.ittx.com.cn/office-walle/will_server.git
synced 2026-10-20 00:17:50 +00:00
- 在build.gradle中添加resolveJibJvmFlags方法支持JVM标志配置 - 在jenkins-docker-push.sh中添加JIB_JVM_FLAGS环境变量支持 - 添加JAVA_HOME环境变量配置和路径设置 - 实现Java版本检查确保使用Java 21或更高版本 - 验证Java版本并提供错误提示信息 - 导出JIB_JVM_FLAGS环境变量供构建使用
66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
APP_NAME=${APP_NAME:-will-alert-server}
|
|
ALIYUN_REGISTRY=${ALIYUN_REGISTRY:-registry.cn-shanghai.aliyuncs.com}
|
|
ALIYUN_NAMESPACE=${ALIYUN_NAMESPACE:-willhub}
|
|
ALIYUN_IMAGE_NAME=${ALIYUN_IMAGE_NAME:-will-alert-server}
|
|
ALIYUN_IMAGE_TAG=${ALIYUN_IMAGE_TAG:-latest}
|
|
ALIYUN_USERNAME=${ALIYUN_USERNAME:-}
|
|
ALIYUN_PASSWORD=${ALIYUN_PASSWORD:-}
|
|
JIB_BASE_IMAGE=${JIB_BASE_IMAGE:-eclipse-temurin:21-jre}
|
|
JIB_TARGET_IMAGE=${JIB_TARGET_IMAGE:-${ALIYUN_REGISTRY}/${ALIYUN_NAMESPACE}/${ALIYUN_IMAGE_NAME}:${ALIYUN_IMAGE_TAG}}
|
|
JIB_JVM_FLAGS=${JIB_JVM_FLAGS:-}
|
|
GRADLE_TASK=${GRADLE_TASK:-:wcsApp:jib}
|
|
JAVA_HOME=${JAVA_HOME:-}
|
|
|
|
if [ "$#" -gt 0 ] && [ "$#" -ne 1 ]; then
|
|
echo "Usage: $0 [PROJECT_DIR]"
|
|
echo "Example: $0 \$(pwd)"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$#" -eq 1 ]; then
|
|
WORKSPACE_DIR=$1
|
|
else
|
|
WORKSPACE_DIR=${WORKSPACE:-$(pwd)}
|
|
fi
|
|
|
|
cd "${WORKSPACE_DIR}"
|
|
|
|
if [ -n "${JAVA_HOME}" ]; then
|
|
export PATH="${JAVA_HOME}/bin:${PATH}"
|
|
fi
|
|
|
|
JAVA_VERSION=$(java -version 2>&1 | awk -F '[".]' '/version/ {print $2}')
|
|
if [ "${JAVA_VERSION}" = "1" ]; then
|
|
JAVA_MAJOR=$(java -version 2>&1 | awk -F '[".]' '/version/ {print $3}')
|
|
else
|
|
JAVA_MAJOR=${JAVA_VERSION}
|
|
fi
|
|
if [ "${JAVA_MAJOR}" -lt 21 ]; then
|
|
echo "Java version is too low: $(java -version 2>&1 | head -n 1), required Java 21"
|
|
echo "Please configure Jenkins JDK 21, or set JAVA_HOME=/path/to/jdk-21"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${ALIYUN_USERNAME}" ] || [ -z "${ALIYUN_PASSWORD}" ]; then
|
|
echo "ALIYUN_USERNAME or ALIYUN_PASSWORD is empty"
|
|
exit 1
|
|
fi
|
|
|
|
export ALIYUN_USERNAME
|
|
export ALIYUN_PASSWORD
|
|
export JIB_BASE_IMAGE
|
|
export JIB_TARGET_IMAGE
|
|
export JIB_JVM_FLAGS
|
|
|
|
chmod +x gradlew 2>/dev/null || true
|
|
if [ -x ./gradlew ]; then
|
|
./gradlew clean "${GRADLE_TASK}" --no-daemon
|
|
else
|
|
gradle clean "${GRADLE_TASK}" --no-daemon
|
|
fi
|
|
|
|
echo "${APP_NAME} built and pushed by Jib: remote=${JIB_TARGET_IMAGE}"
|