From 3c53ea17a5d7ecd2d38db3e15f7550bd55ce3c7d Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Mon, 20 Nov 2023 20:49:56 +0300 Subject: [PATCH] CI/CD --- Jenkinsfile_CD | 41 +++++++++++++++++++++++++++++++++++ Jenkinsfile => Jenkinsfile_CI | 3 --- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 Jenkinsfile_CD rename Jenkinsfile => Jenkinsfile_CI (84%) diff --git a/Jenkinsfile_CD b/Jenkinsfile_CD new file mode 100644 index 0000000..1125f02 --- /dev/null +++ b/Jenkinsfile_CD @@ -0,0 +1,41 @@ +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 """ + sshpass -p ${SSH_PASS} ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'mkdir -p ${PATH_TO_DEV_FOLDER}' + scp -o StrictHostKeyChecking=no -P ${SSH_PORT} target/*.jar ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/ + scp -o StrictHostKeyChecking=no -P ${SSH_PORT} Dockerfile ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/ + scp -o StrictHostKeyChecking=no -P ${SSH_PORT} docker-compose.yml ${SSH_USER}@${SSH_HOST}:${PATH_TO_DEV_FOLDER}/ + ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'cd ${PATH_TO_DEV_FOLDER} && docker build -t ${IMAGE_NAME}:${IMAGE_VERSION} .' + ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p ${SSH_PORT} 'cd ${PATH_TO_DEV_FOLDER} && docker-compose up -d' + """ + } + } + } + } + } +} \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile_CI similarity index 84% rename from Jenkinsfile rename to Jenkinsfile_CI index af40db6..c7ed1b4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile_CI @@ -8,14 +8,11 @@ pipeline { stages { stage('Build') { steps { - sh 'ls' sh 'mvn -B -DskipTests -X clean package' } } stage('Build docker') { steps { - sh 'ls' - sh 'ls target' sh 'docker build -t ldeloff/servermonitorbot:latest .' } }