diff --git a/java-mall-app-shop-admin/Jenkinsfile b/java-mall-app-shop-admin/Jenkinsfile index 5da42bc..0db4cae 100644 --- a/java-mall-app-shop-admin/Jenkinsfile +++ b/java-mall-app-shop-admin/Jenkinsfile @@ -1,110 +1,36 @@ pipeline { agent any - - // 工具配置:指定Node.js版本(需在Jenkins全局工具中预先配置) - tools { - nodejs "NodeJS16" - } - + environment { - // 项目核心路径配置 - UNI_APP_DIR = "./java-mall-app-shop-admin" // 项目根目录 - OUTPUT_DIR = "${UNI_APP_DIR}/dist/build/h5" // uniapp H5编译输出目录 - DEPLOY_TARGET = "/data/nginx/www/fafamall/demo" // 本地部署目录 + DEPLOY_DIR = '/data/nginx/www/fafamall/mchapp' + DIST_PATH = 'dist' } - + stages { - stage('拉取代码') { + stage('拉取代码并验证') { steps { - checkout scm // 从代码仓库拉取最新代码 + checkout scm + sh """ + [ -d "${DIST_PATH}" ] || { echo "错误:未找到 ${DIST_PATH} 文件夹"; exit 1; } + echo "${DIST_PATH} 验证通过" + """ } } - - stage('安装依赖(含uniapp核心)') { + + stage('部署') { steps { - script { - dir("${UNI_APP_DIR}") { - echo "清理旧依赖..." - sh 'rm -rf node_modules package-lock.json' - sh 'npm cache clean --force' - - echo "设置国内镜像源加速..." - sh 'npm config set registry https://registry.npmmirror.com' - sh 'npm config set @dcloudio:registry https://registry.npmmirror.com' - - echo "安装uniapp必需依赖..." - sh 'npm install @vue/cli-service@5.0.8 --save-dev' - sh 'npm install @dcloudio/vue-cli-plugin-uni@latest --save-dev' - sh 'npm install' - - // 验证核心依赖 - def uniPluginExists = fileExists("${UNI_APP_DIR}/node_modules/@dcloudio/vue-cli-plugin-uni") - if (!uniPluginExists) { - error "uniapp核心依赖安装失败!缺少@dcloudio/vue-cli-plugin-uni" - } - } - } - } - } - - stage('编译Uniapp项目(H5平台)') { - steps { - script { - dir("${UNI_APP_DIR}") { - echo "开始编译Uniapp项目..." - sh 'npx vue-cli-service uni-build --mode production --platform h5' - - // 验证编译产物 - if (!fileExists("${OUTPUT_DIR}")) { - error "编译失败!未生成${OUTPUT_DIR}目录" - } - echo "Uniapp编译完成,输出路径:${OUTPUT_DIR}" - } - } - } - } - - stage('部署到本地目录') { - steps { - script { - echo "开始部署到本地目录:${DEPLOY_TARGET}" - - // 1. 确保目标目录存在并清空 - sh """ - mkdir -p ${DEPLOY_TARGET} - rm -rf ${DEPLOY_TARGET}/* - """ - - // 2. 复制构建产物到目标目录 - sh "cp -r ${OUTPUT_DIR}/* ${DEPLOY_TARGET}/" - - // 3. 验证部署结果 - def fileCount = sh( - script: "ls -la ${DEPLOY_TARGET} | wc -l", - returnStdout: true - ).trim() - - if (fileCount.toInteger() <= 2) { // 只包含.和..说明部署失败 - error "部署失败:目标目录${DEPLOY_TARGET}为空" - } - - echo "部署完成!文件已输出到${DEPLOY_TARGET}" - } + sh """ + mkdir -p ${DEPLOY_DIR} + rm -rf ${DEPLOY_DIR}/* + cp -r ${DIST_PATH}/* ${DEPLOY_DIR}/ + echo "部署完成:${DIST_PATH} → ${DEPLOY_DIR}" + """ } } } - + post { - success { - echo "✅ Uniapp本地部署成功" - } - failure { - echo "❌ Uniapp本地部署失败" - } - always { - // 可选:清理工作空间 - cleanWs() - } + success { echo "✅ 部署成功" } + failure { echo "❌ 部署失败" } } -} - \ No newline at end of file +} \ No newline at end of file