pipeline { agent any environment { SSH_CREDENTIALS_ID = 'alex-ssh-key' REMOTE_HOST = '117.72.202.202' REMOTE_USER = 'alex' REMOTE_DIR = '/home/alex/alex-api' } stages { stage('Pre') { steps { sshagent([env.SSH_CREDENTIALS_ID]) { sh 'ssh alex@117.72.202.202 "bash ../bin/pre-steps.sh"' } } } stage('Build') { steps { sh 'mvn clean package -DskipTests' } } stage('Deploy') { steps { sshagent([env.SSH_CREDENTIALS_ID]) { sh """ scp target/alex-api-0.0.1-SNAPSHOT.jar ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/app/ ssh ${REMOTE_USER}@${REMOTE_HOST} ' cd ${REMOTE_DIR} && sudo docker compose down && sudo docker image prune -f && sudo docker compose up -d --build ' """ } } } } }