Files
alex-ui/Jenkinsfile
2025-07-17 14:38:09 +08:00

57 lines
1.3 KiB
Groovy

pipeline {
agent any
environment {
SSH_CREDENTIALS_ID = 'alex-ssh-key'
REMOTE_HOST = '117.72.202.202'
REMOTE_USER = 'alex'
REMOTE_DIR = '/home/alex/alex-ui'
REMOTE_FRONT_PATH = '/var/www/alex-ui'
NGINX_CONTAINER = 'nginx'
}
stages {
stage('Pull Code') {
steps {
sshagent([env.SSH_CREDENTIALS_ID]) {
sh """
ssh ${REMOTE_USER}@${REMOTE_HOST} '
set -e
cd ${REMOTE_DIR} || git clone git@117.72.202.202:ALEX/alex-ui.git ${REMOTE_DIR}
cd ${REMOTE_DIR}
git pull origin master
'
"""
}
}
}
stage('Install & Build') {
steps {
sshagent([env.SSH_CREDENTIALS_ID]) {
sh """
ssh ${REMOTE_USER}@${REMOTE_HOST} '
cd ${REMOTE_DIR}
npm install --legacy-peer-deps
npx vue-cli-service build
'
"""
}
}
}
stage('Deploy') {
steps {
sshagent([env.SSH_CREDENTIALS_ID]) {
sh """
ssh ${REMOTE_USER}@${REMOTE_HOST} '
sudo cp -r ${REMOTE_DIR}/dist/* ${REMOTE_FRONT_PATH}/
sudo docker restart ${NGINX_CONTAINER}
'
"""
}
}
}
}
}