merchapp/java-mall-app-shop-admin/Jenkinsfile

97 lines
3.1 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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