ci: 使用在线地址+scp部署

这个提交包含在:
xuqm 2026-07-09 13:59:00 +08:00
父节点 261510e19a
当前提交 e514d5bbb3

42
Jenkinsfile vendored
查看文件

@ -2,43 +2,22 @@ pipeline {
agent any
environment {
PROD_HOST = '106.54.23.149'
PROD_USER = 'ubuntu'
DEPLOY_DIR = '/var/www/docs.xuqinmin.com/site'
LOCAL_REPO = 'D:/Projects3/lawless-design'
}
triggers {
// 每 2 分钟检查本地仓库是否有新 commit
pollSCM('H/2 * * * *')
}
options {
timeout(time: 5, unit: 'MINUTES')
disableConcurrentBuilds()
PROD_HOST = '106.54.23.149'
PROD_USER = 'ubuntu'
DEPLOY_DIR = '/var/www/docs.xuqinmin.com/site'
}
stages {
stage('Checkout Local') {
stage('Checkout') {
steps {
// 使用本地文件路径,完全避免网络超时
checkout([
$class: 'GitSCM',
branches: [[name: '*/main']],
userRemoteConfigs: [[
url: 'file:///D:/Projects3/lawless-design'
]]
])
checkout scm
}
}
stage('Build Docs') {
steps {
bat '''
pip3 install mkdocs-material --quiet 2>nul || echo mkdocs already installed
mkdocs build --clean --site-dir site
echo Docs built successfully
'''
bat 'pip3 install mkdocs-material --quiet 2>nul || echo ok'
bat 'mkdocs build --clean --site-dir site'
}
}
@ -46,9 +25,8 @@ pipeline {
steps {
withCredentials([sshUserPrivateKey(credentialsId: 'PROD_SSH_KEY', keyFileVariable: 'SSH_KEY')]) {
bat '''
set RSYNC_RSH=ssh -i %SSH_KEY% -o StrictHostKeyChecking=no -o ConnectTimeout=30
rsync -avz --delete site/ %PROD_USER%@%PROD_HOST%:%DEPLOY_DIR%/
echo Deployed to https://docs.xuqinmin.com/
ssh -i %SSH_KEY% -o StrictHostKeyChecking=no -o ConnectTimeout=30 %PROD_USER%@%PROD_HOST% "sudo rm -rf %DEPLOY_DIR%/*"
scp -i %SSH_KEY% -o StrictHostKeyChecking=no -o ConnectTimeout=30 -r site/* %PROD_USER%@%PROD_HOST%:%DEPLOY_DIR%/
'''
}
}
@ -57,7 +35,7 @@ pipeline {
post {
success {
echo 'Docs site deployed: https://docs.xuqinmin.com/'
echo 'Docs deployed: https://docs.xuqinmin.com/'
}
failure {
echo 'Docs deployment failed!'