更新 java-mall-app-shop-admin/Jenkinsfile

This commit is contained in:
panjunjie 2025-08-11 12:10:24 +08:00
parent 5f2799184c
commit 3d1e9df1b9

View File

@ -2,18 +2,13 @@ pipeline {
agent any agent any
tools { tools {
// 指定使用NodeJS18版本需在Jenkins全局工具配置中提前配置该名称 nodejs 'NodeJS18' // 使用NodeJS18版本
nodejs 'NodeJS18'
} }
environment { environment {
// UniApp项目所在目录
UNIAPP_DIR = 'java-mall-app-shop-admin' UNIAPP_DIR = 'java-mall-app-shop-admin'
// 打包目标平台可改为mp-weixin、app-plus等
TARGET_PLATFORM = 'h5' TARGET_PLATFORM = 'h5'
// 打包输出路径
OUTPUT_DIR = "${UNIAPP_DIR}/dist/build/${TARGET_PLATFORM}" OUTPUT_DIR = "${UNIAPP_DIR}/dist/build/${TARGET_PLATFORM}"
// 部署目标路径(根据实际需求修改)
DEPLOY_PATH = '/data/nginx/www/demo' DEPLOY_PATH = '/data/nginx/www/demo'
} }
@ -21,29 +16,31 @@ pipeline {
stage('拉取代码') { stage('拉取代码') {
steps { steps {
checkout scm checkout scm
echo "代码拉取完成,当前工作目录: ${env.WORKSPACE}"
} }
} }
stage('安装项目依赖') { stage('安装完整依赖含UniApp插件') {
steps { steps {
sh """ sh """
# 进入UniApp项目目录
cd ${UNIAPP_DIR} || { cd ${UNIAPP_DIR} || {
echo "错误:UniApp项目目录 ${UNIAPP_DIR} 不存在!" echo "错误:项目目录不存在!"
exit 1 exit 1
} }
# 清理旧依赖和缓存 # 清理旧依赖
rm -rf node_modules package-lock.json rm -rf node_modules package-lock.json
# 使用国内镜像源加速安装 # 设置镜像源
npm config set registry https://registry.npmmirror.com npm config set registry https://registry.npmmirror.com
# 安装依赖并显示版本信息 # 安装项目基础依赖
echo "当前NodeJS版本: \$(node -v)"
echo "当前npm版本: \$(npm -v)"
npm install npm install
# 关键安装UniApp核心打包插件解决uni-build不存在问题
npm install @dcloudio/vue-cli-plugin-uni@latest --save-dev
# 安装Vue CLI服务确保vue-cli-service可用
npm install @vue/cli-service@5.0.8 --save-dev
""" """
} }
} }
@ -53,19 +50,23 @@ pipeline {
sh """ sh """
cd ${UNIAPP_DIR} cd ${UNIAPP_DIR}
# 直接使用vue-cli-service执行打包无需依赖package.json脚本 # 验证依赖是否安装成功
echo "开始打包${TARGET_PLATFORM}平台..." echo "检查uni-build命令是否存在..."
npx vue-cli-service help | grep uni-build || {
echo "错误uni-build命令仍不存在依赖安装失败"
exit 1
}
# 执行打包
npx vue-cli-service uni-build \ npx vue-cli-service uni-build \
--mode production \ --mode production \
--platform ${TARGET_PLATFORM} --platform ${TARGET_PLATFORM}
# 验证打包结果 # 验证输出
if [ ! -d "${OUTPUT_DIR}" ]; then if [ ! -d "${OUTPUT_DIR}" ]; then
echo "错误:打包失败,未生成输出目录 ${OUTPUT_DIR}" echo "打包失败,未生成输出目录!"
exit 1 exit 1
fi fi
echo "${TARGET_PLATFORM}平台打包完成,输出目录: ${OUTPUT_DIR}"
""" """
} }
} }
@ -73,24 +74,16 @@ pipeline {
stage('部署到服务器') { stage('部署到服务器') {
steps { steps {
sh """ sh """
# 创建部署目录
mkdir -p ${DEPLOY_PATH} mkdir -p ${DEPLOY_PATH}
# 复制打包产物到部署目录
cp -r ${OUTPUT_DIR}/* ${DEPLOY_PATH}/ cp -r ${OUTPUT_DIR}/* ${DEPLOY_PATH}/
echo "部署成功!"
echo "成功部署到 ${DEPLOY_PATH}"
""" """
} }
} }
} }
post { post {
success { success { echo "打包部署成功" }
echo "UniApp项目${TARGET_PLATFORM})打包部署成功!" failure { echo "打包部署失败" }
}
failure {
echo "UniApp项目打包部署失败请查看详细日志"
}
} }
} }