45 lines
1.8 KiB
Plaintext
45 lines
1.8 KiB
Plaintext
pipeline {
|
|
agent {
|
|
docker {
|
|
image 'maven:3.9.5-eclipse-temurin-17'
|
|
args '-v /root/.m2:/root/.m2'
|
|
}
|
|
}
|
|
|
|
environment {
|
|
SSH_HOST = credentials('SSH_HOST')
|
|
SSH_PORT = credentials('SSH_PORT')
|
|
SSH_USER = credentials('SSH_USER')
|
|
SSH_PASS = credentials('SSH_PASS')
|
|
PATH_TO_DEV_FOLDER = credentials('PATH_TO_DEV_FOLDER')
|
|
IMAGE_NAME = 'servermonitorbot'
|
|
IMAGE_VERSION = 'latest'
|
|
}
|
|
|
|
stages {
|
|
stage('Build') {
|
|
steps {
|
|
sh 'mvn -B -DskipTests -X clean package'
|
|
}
|
|
}
|
|
stage('Deploy') {
|
|
steps {
|
|
script {
|
|
|
|
sh 'apt-get update && apt-get install -y sshpass openssh-client'
|
|
|
|
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} scp -o StrictHostKeyChecking=no -P ${SSH_PORT} target/*.jar ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/target/
|
|
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'
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|