Files
alex-api/Jenkinsfile
2025-07-17 02:29:56 +00:00

43 lines
1.1 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-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
'
"""
}
}
}
}
}