Files
Work-configuration-file/jenkins/流水线配置/lessie_official_web.conf
2025-10-13 11:05:51 +08:00

65 lines
1.7 KiB
Plaintext

pipeline {
agent any
environment {
DEPLOY_HOST = '49.51.46.148' // 目标机 IP 或域名
DEPLOY_DIR = '/data/tengine/html/lessie_official' // 目标机部署目录
}
stages {
stage('Checkout 代码') {
steps {
git branch: 'dev', credentialsId: 'fly_gitlab_auth', url: 'http://172.24.16.20/web/scalelink-frontend.git'
}
}
stage('Install & Build') {
steps {
sh """
cd ${WORKSPACE}/projects/lessie' &&
npm install --frozen-lockfile &&
npm run build
"""
}
}
stage('同步文件') {
steps {
// 打包必要文件:.output、package.json、pnpm-lock.yaml
# sh '''
# rm -rf deploy.tar.gz
# tar czf deploy.tar.gz \
# .output package.json pnpm-lock.yaml
# '''
# archiveArtifacts artifacts: 'deploy.tar.gz'
}
}
stage('Deploy to Target') {
steps {
sshagent([SSH_CRED]) {
// 1) 传输压缩包
sh """
scp deploy.tar.gz ${DEPLOY_USER}@${DEPLOY_HOST}:/tmp/
"""
// 2) 解压、安装依赖、重启
sh """
ssh ${DEPLOY_USER}@${DEPLOY_HOST} '
mkdir -p ${DEPLOY_DIR} &&
tar xzf /tmp/deploy.tar.gz -C ${DEPLOY_DIR} &&
cd ${DEPLOY_DIR} &&
# 安装生产依赖
npm install --production &&
# 重启 pm2 服务
pm2 reload nuxt-app || pm2 start .output/server/index.mjs --name nuxt-app
'
"""
}
}
}
}
post {
success {
echo '部署成功 🎉'
}
failure {
echo '部署失败,请检查日志 ❌'
}
}
}