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} ' """ } } } } }