lawless-design/Jenkinsfile

51 行
1.5 KiB
Groovy

pipeline {
agent any
environment {
PROD_HOST = '106.54.23.149'
PROD_USER = 'ubuntu'
DEPLOY_DIR = '/var/www/docs.xuqinmin.com/site'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build Docs') {
steps {
bat '''
chcp 65001 > nul
set PYTHONIOENCODING=utf-8
set PYTHONUTF8=1
set LC_ALL=en_US.UTF-8
pip3 install mkdocs-material --quiet 2>nul || echo ok
python -X utf8 -m mkdocs build --clean --site-dir site
'''
}
}
stage('Deploy') {
steps {
withCredentials([sshUserPrivateKey(credentialsId: 'PROD_SSH_KEY', keyFileVariable: 'SSH_KEY')]) {
bat '''
ssh -i %SSH_KEY% -o StrictHostKeyChecking=no -o ConnectTimeout=30 %PROD_USER%@%PROD_HOST% "mkdir -p %DEPLOY_DIR% && sudo rm -rf %DEPLOY_DIR%/* && sudo chown -R %PROD_USER%:%PROD_USER% %DEPLOY_DIR%"
scp -i %SSH_KEY% -o StrictHostKeyChecking=no -o ConnectTimeout=30 -r site/* %PROD_USER%@%PROD_HOST%:%DEPLOY_DIR%/
'''
}
}
}
}
post {
success {
echo 'Docs deployed: https://docs.xuqinmin.com/'
}
failure {
echo 'Docs deployment failed!'
}
}
}