cyc
This commit is contained in:
parent
96358f8d5d
commit
97bd2734ba
57
Jenkinsfile
vendored
57
Jenkinsfile
vendored
@ -20,54 +20,33 @@ pipeline {
|
|||||||
|
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
echo '构建项目...'
|
||||||
// 定义构建命令(公共部分)
|
sh '''
|
||||||
def buildCommands = '''
|
# 检查 Node.js
|
||||||
|
if ! command -v node &> /dev/null; then
|
||||||
|
echo "错误: Node.js 未安装,请安装 Node.js 22+"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Node 版本: $(node --version)"
|
echo "Node 版本: $(node --version)"
|
||||||
echo "NPM 版本: $(npm --version)"
|
echo "NPM 版本: $(npm --version)"
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
echo "安装依赖..."
|
echo "安装依赖..."
|
||||||
npm install
|
npm install
|
||||||
npm run install:all
|
npm run install:all
|
||||||
|
|
||||||
|
# 构建前端
|
||||||
echo "构建前端..."
|
echo "构建前端..."
|
||||||
npm run build --workspace=frontend
|
npm run build --workspace=frontend
|
||||||
|
|
||||||
|
# 构建后端
|
||||||
echo "构建后端..."
|
echo "构建后端..."
|
||||||
cd backend && npm run build && npm run prisma:generate && cd ..
|
cd backend
|
||||||
|
npm run build
|
||||||
|
npm run prisma:generate
|
||||||
|
cd ..
|
||||||
'''
|
'''
|
||||||
|
|
||||||
// 尝试使用 Docker 构建,失败则回退到主机构建
|
|
||||||
def useDocker = false
|
|
||||||
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 {
|
|
||||||
docker.image("node:18").inside('-v /var/run/docker.sock:/var/run/docker.sock') {
|
|
||||||
sh buildCommands
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
echo "Docker 构建失败,回退到主机构建: ${e.getMessage()}"
|
|
||||||
useDocker = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!useDocker) {
|
|
||||||
sh '''
|
|
||||||
if ! command -v node &> /dev/null; then
|
|
||||||
echo "错误: Node.js 未安装,请安装 Node.js 18+"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
''' + buildCommands
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
FROM node:18-alpine
|
FROM node:22-alpine
|
||||||
|
|
||||||
# 安装 OpenSSL(Prisma 需要)
|
# 安装 OpenSSL(Prisma 需要)
|
||||||
# Alpine 3.19+ 使用 openssl3,旧版本使用 openssl1.1-compat
|
# Alpine 3.19+ 使用 openssl3,旧版本使用 openssl1.1-compat
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user