55 lines
2.4 KiB
Plaintext
55 lines
2.4 KiB
Plaintext
pipeline {
|
|
agent {
|
|
docker {
|
|
image 'maven:3.9.5-eclipse-temurin-17'
|
|
args '-v /root/.m2:/root/.m2'
|
|
}
|
|
}
|
|
|
|
environment {
|
|
SSH_HOST = credentials('ROCK_PI_5_SSH_HOST')
|
|
SSH_PORT = credentials('ROCK_PI_5_SSH_PORT')
|
|
SSH_USER = credentials('ROCK_PI_5_SSH_USER')
|
|
SSH_PASS = credentials('ROCK_PI_5_SSH_PASS')
|
|
PATH_TO_DEV_FOLDER = credentials('SERVERMONITORBOT_PATH_TO_DEV_FOLDER')
|
|
IMAGE_NAME = 'servermonitorbot'
|
|
IMAGE_VERSION = 'latest'
|
|
}
|
|
|
|
stages {
|
|
stage('Init container') {
|
|
steps {
|
|
sh 'apt-get update && apt-get install -y sshpass openssh-client'
|
|
}
|
|
}
|
|
stage('Build') {
|
|
steps {
|
|
sh 'mvn -B -DskipTests -X clean package spring-boot:repackage'
|
|
}
|
|
}
|
|
stage('Deploy') {
|
|
steps {
|
|
script {
|
|
sh """
|
|
sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'mkdir -p ${PATH_TO_DEV_FOLDER}'
|
|
sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'rm -f ${PATH_TO_DEV_FOLDER}/{*.*}'
|
|
sshpass -p ${SSH_PASS} scp -o StrictHostKeyChecking=no -P ${SSH_PORT} target/*.jar ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/
|
|
sshpass -p ${SSH_PASS} scp -o StrictHostKeyChecking=no -P ${SSH_PORT} Dockerfile ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/
|
|
sshpass -p ${SSH_PASS} scp -o StrictHostKeyChecking=no -P ${SSH_PORT} docker-compose.yml ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/
|
|
sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'cd ${PATH_TO_DEV_FOLDER} && docker build -t ${IMAGE_NAME}:${IMAGE_VERSION} .'
|
|
sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'cd ${PATH_TO_DEV_FOLDER} && docker compose up -d'
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
stage('Prune images') {
|
|
steps {
|
|
sh """
|
|
sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'docker image prune -f'
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|