100 lines
3.0 KiB
Groovy
100 lines
3.0 KiB
Groovy
pipeline {
|
||
agent any
|
||
|
||
tools {
|
||
nodejs 'NodeJS22'
|
||
}
|
||
|
||
environment {
|
||
// 主项目部署路径
|
||
DEPLOY_DIR = '/data/nginx/www/fafamall/demo'
|
||
// UniApp项目子目录
|
||
UNIAPP_SUB_DIR = 'merchapp/java-mall-app-shop-admin'
|
||
// UniApp打包输出目录(相对子目录的路径)
|
||
UNIAPP_DIST_RELATIVE = 'dist/build/h5'
|
||
}
|
||
|
||
stages {
|
||
stage('拉取代码') {
|
||
steps {
|
||
checkout scm
|
||
echo "代码检出完成,当前工作目录: ${env.WORKSPACE}"
|
||
}
|
||
}
|
||
|
||
// 主项目构建部署(保持不变)
|
||
stage('安装主项目依赖') {
|
||
steps {
|
||
sh '''
|
||
rm -rf node_modules package-lock.json
|
||
npm config set registry https://registry.npmmirror.com
|
||
npm install
|
||
'''
|
||
}
|
||
}
|
||
|
||
stage('构建主项目') {
|
||
steps {
|
||
sh 'npm run build'
|
||
}
|
||
}
|
||
|
||
stage('部署主项目') {
|
||
steps {
|
||
sh '''
|
||
mkdir -p ${DEPLOY_DIR}
|
||
rm -rf ${DEPLOY_DIR}/*
|
||
cp -r dist/* ${DEPLOY_DIR}/
|
||
'''
|
||
}
|
||
}
|
||
|
||
// UniApp项目打包(在子目录中执行)
|
||
stage('UniApp项目打包') {
|
||
steps {
|
||
sh '''
|
||
echo "进入UniApp项目目录: ${UNIAPP_SUB_DIR}"
|
||
cd ${UNIAPP_SUB_DIR} || {
|
||
echo "错误:UniApp项目目录 ${UNIAPP_SUB_DIR} 不存在!"
|
||
exit 1
|
||
}
|
||
|
||
# 显示当前目录以确认
|
||
pwd
|
||
|
||
# 清理旧依赖
|
||
rm -rf node_modules package-lock.json
|
||
|
||
# 安装依赖
|
||
npm config set registry https://registry.npmmirror.com
|
||
npm install
|
||
|
||
# 执行打包(H5平台,可根据需要修改为其他平台)
|
||
npm run build:h5
|
||
|
||
# 验证打包结果
|
||
if [ ! -d "${UNIAPP_DIST_RELATIVE}" ]; then
|
||
echo "错误:UniApp打包失败,未找到输出目录!"
|
||
exit 1
|
||
fi
|
||
|
||
# 如需部署UniApp产物,可添加以下命令
|
||
# UNIAPP_DEPLOY_DIR="/data/nginx/www/uniapp-admin"
|
||
# mkdir -p ${UNIAPP_DEPLOY_DIR}
|
||
# rm -rf ${UNIAPP_DEPLOY_DIR}/*
|
||
# cp -r ${UNIAPP_DIST_RELATIVE}/* ${UNIAPP_DEPLOY_DIR}/
|
||
'''
|
||
}
|
||
}
|
||
}
|
||
|
||
post {
|
||
success {
|
||
echo '主项目及UniApp项目打包部署成功'
|
||
}
|
||
failure {
|
||
echo '项目构建或部署失败'
|
||
}
|
||
}
|
||
}
|