Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 714aaf99b1 | |||
| 632fff2f27 | |||
| e8b7e24e85 | |||
| 657a678671 | |||
| f215c8677e | |||
| 8dddbb730b | |||
| 4da33e787a | |||
| 4fe6b28e81 | |||
| fffbdce48e |
74
Jenkinsfile
vendored
Normal file
74
Jenkinsfile
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
tools {
|
||||
nodejs 'NodeJS16'
|
||||
}
|
||||
|
||||
environment {
|
||||
DEPLOY_DIR = '/data/nginx/www/fafamall/demo' // 主节点部署目录
|
||||
SLAVE_IP = '172.16.0.10' // 从节点 IP
|
||||
SLAVE_DEPLOY_DIR = '/data/nginx/www/fafamall/demo' // 从节点目标目录(与主节点一致)
|
||||
SSH_PORT = '2203' // 从节点 SSH 端口
|
||||
SSH_KEY = '/root/.ssh/id_rsa' // Jenkins 服务器(主节点)免密私钥路径
|
||||
DIST_PATH = 'dist' // 编译产物目录(与 npm run build 输出目录一致)
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('拉取代码') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('安装依赖') {
|
||||
steps {
|
||||
sh '''
|
||||
echo "清理旧依赖..."
|
||||
rm -rf node_modules package-lock.json
|
||||
npm cache clean --force
|
||||
|
||||
echo "设置国内镜像源加速..."
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
|
||||
# 安装其他依赖
|
||||
npm install
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('构建项目') {
|
||||
steps {
|
||||
sh 'npm run build'
|
||||
// 验证构建产物是否存在(避免空同步)
|
||||
sh """
|
||||
[ -d "${DIST_PATH}" ] || { echo "错误:构建失败,未找到 ${DIST_PATH} 目录"; exit 1; }
|
||||
echo "构建成功:${DIST_PATH} 目录存在"
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
stage('主节点部署') {
|
||||
steps {
|
||||
sh '''
|
||||
# 公共部署逻辑(创建目录、清理、复制)
|
||||
mkdir -p ${DEPLOY_DIR}
|
||||
rm -rf ${DEPLOY_DIR}/*
|
||||
cp -r ${DIST_PATH}/* ${DEPLOY_DIR}/
|
||||
echo "主节点部署完成:${DIST_PATH} → ${DEPLOY_DIR}"
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
echo '🎉 项目部署+从节点同步全部成功!'
|
||||
}
|
||||
failure {
|
||||
echo '❌ 项目部署/同步失败,请排查问题后重试!'
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user