|
|
@@ -50,7 +50,11 @@ pipeline {
|
|
|
|
|
|
stage('Deploy') {
|
|
|
steps {
|
|
|
- sshagent(credentials: [env.SSH_CREDENTIALS_ID]) {
|
|
|
+ withCredentials([sshUserPrivateKey(
|
|
|
+ credentialsId: env.SSH_CREDENTIALS_ID,
|
|
|
+ keyFileVariable: 'SSH_KEY',
|
|
|
+ usernameVariable: 'SSH_USER'
|
|
|
+ )]) {
|
|
|
sh '''
|
|
|
set -e
|
|
|
|
|
|
@@ -59,17 +63,20 @@ pipeline {
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
- echo "开始部署到 ${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
|
|
|
+ chmod 600 "$SSH_KEY"
|
|
|
+ SSH_OPTS="-i $SSH_KEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
|
+
|
|
|
+ echo "开始部署到 ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
|
|
|
|
|
|
# 确保目标目录存在
|
|
|
- ssh -o StrictHostKeyChecking=no ${DEPLOY_USER}@${DEPLOY_HOST} \
|
|
|
+ ssh $SSH_OPTS ${SSH_USER}@${DEPLOY_HOST} \
|
|
|
"mkdir -p ${DEPLOY_PATH}"
|
|
|
|
|
|
# 将 dist 目录内容同步到网站根目录(不含 dist 文件夹本身)
|
|
|
rsync -avz --delete \
|
|
|
- -e "ssh -o StrictHostKeyChecking=no" \
|
|
|
+ -e "ssh $SSH_OPTS" \
|
|
|
dist/ \
|
|
|
- ${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
|
|
|
+ ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
|
|
|
|
|
|
echo "部署完成"
|
|
|
'''
|