ServerMonitorBot/Jenkinsfile_CD

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'
"""
}
}
}
}
}