This commit is contained in:
caoyuchun 2026-01-16 11:56:51 +08:00
parent 96358f8d5d
commit 97bd2734ba
2 changed files with 25 additions and 46 deletions

69
Jenkinsfile vendored
View File

@ -20,54 +20,33 @@ pipeline {
stage('Build') { stage('Build') {
steps { steps {
script { echo '构建项目...'
// 定义构建命令(公共部分) sh '''
def buildCommands = ''' # 检查 Node.js
echo "Node 版本: $(node --version)" if ! command -v node &> /dev/null; then
echo "NPM 版本: $(npm --version)" echo "错误: Node.js 未安装,请安装 Node.js 22+"
echo "安装依赖..." exit 1
npm install fi
npm run install:all
echo "构建前端..."
npm run build --workspace=frontend
echo "构建后端..."
cd backend && npm run build && npm run prisma:generate && cd ..
'''
// 尝试使用 Docker 构建,失败则回退到主机构建 echo "Node 版本: $(node --version)"
def useDocker = false echo "NPM 版本: $(npm --version)"
try {
def dockerCheck = sh(
script: 'command -v docker >/dev/null 2>&1 && docker --version',
returnStatus: true
)
if (dockerCheck == 0) {
useDocker = true
}
} catch (Exception e) {
echo "Docker 不可用,使用主机构建"
}
if (useDocker) { # 安装依赖
try { echo "安装依赖..."
docker.image("node:18").inside('-v /var/run/docker.sock:/var/run/docker.sock') { npm install
sh buildCommands npm run install:all
}
} catch (Exception e) {
echo "Docker 构建失败,回退到主机构建: ${e.getMessage()}"
useDocker = false
}
}
if (!useDocker) { # 构建前端
sh ''' echo "构建前端..."
if ! command -v node &> /dev/null; then npm run build --workspace=frontend
echo "错误: Node.js 未安装,请安装 Node.js 18+"
exit 1 # 构建后端
fi echo "构建后端..."
''' + buildCommands cd backend
} npm run build
} npm run prisma:generate
cd ..
'''
} }
} }

View File

@ -1,4 +1,4 @@
FROM node:18-alpine FROM node:22-alpine
# 安装 OpenSSLPrisma 需要) # 安装 OpenSSLPrisma 需要)
# Alpine 3.19+ 使用 openssl3旧版本使用 openssl1.1-compat # Alpine 3.19+ 使用 openssl3旧版本使用 openssl1.1-compat