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('Remote Pull and Build') { 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-api.git ${REMOTE_DIR} cd ${REMOTE_DIR} git pull origin master mvn clean package -DskipTests sudo docker compose down sudo docker image prune -f sudo docker compose up -d --build ' """ } } } } }