From 9cf15fee592c0a7b5a7ef5467d4859b7fbc37d72 Mon Sep 17 00:00:00 2001 From: falk Date: Sat, 16 May 2020 00:23:12 +0200 Subject: [PATCH] edit-jenkinsfile (#71) build and deploy only on master added deploy frontend script added script for copying backendfolder to olberry build frontend now working build only for master added scripts Co-authored-by: Hawk Reviewed-by: Oliver Boehlk --- Jenkinsfile | 31 ++++++++++++++++++++++++++++--- jenkins/buildFrontend.sh | 13 +++++++++++++ jenkins/deployBackend.sh | 15 +++++++++++++++ jenkins/deployFrontend.sh | 15 +++++++++++++++ 4 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 jenkins/buildFrontend.sh create mode 100644 jenkins/deployBackend.sh create mode 100644 jenkins/deployFrontend.sh diff --git a/Jenkinsfile b/Jenkinsfile index cc4c8cd..6bf25b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,10 +2,35 @@ pipeline { agent any stages { - stage('Do nothing') { + stage('Environment') { steps { - sh '/bin/true' + sh 'git --version' + sh 'printenv' + } + } + stage('Build Frontend') { + steps { + script{ + def SCRIPT_OUTPUT1 = sh (script: 'sudo bash ./jenkins/buildFrontend.sh ${BRANCH_NAME}',returnStdout: true) + echo "Script Output: ${SCRIPT_OUTPUT1}" + } + } + } + stage('Deploy Backend') { + steps { + script{ + def SCRIPT_OUTPUT2 = sh (script: 'sudo bash ./jenkins/deployBackend.sh ${BRANCH_NAME}',returnStdout: true) + echo "Script Output: ${SCRIPT_OUTPUT2}" + } + } + } + stage('Deploy Frontend') { + steps { + script{ + def SCRIPT_OUTPUT2 = sh (script: 'sudo bash ./jenkins/deployFrontend.sh ${BRANCH_NAME}',returnStdout: true) + echo "Script Output: ${SCRIPT_OUTPUT2}" + } } } } -} \ No newline at end of file +} diff --git a/jenkins/buildFrontend.sh b/jenkins/buildFrontend.sh new file mode 100644 index 0000000..cf9bb55 --- /dev/null +++ b/jenkins/buildFrontend.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +cd ./frontend + +if test "$1" = "master" +then + echo 'Install neccessary Packages' + yarn install + echo 'Build Frontend for Production' + yarn run build +else + echo "Skipping for non-master branch" +fi diff --git a/jenkins/deployBackend.sh b/jenkins/deployBackend.sh new file mode 100644 index 0000000..236dc61 --- /dev/null +++ b/jenkins/deployBackend.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh + +if test "$1" = "master" +then + echo 'Stop node process' + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "killall node" + echo 'Remove old backend folder' + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "rm -r ~/simco-dashboard/backend" + echo 'Copy backend to OlberryPi' + scp -i /etc/ssh/simco_key -r backend simco-jenkins@gitea.oliver.boehlk.io:~/simco-dashboard + echo 'Yarn install packages' + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "cd ~/simco-dashboard/backend && yarn install" +else + echo "Skipping for non-master branch" +fi diff --git a/jenkins/deployFrontend.sh b/jenkins/deployFrontend.sh new file mode 100644 index 0000000..db4e1c2 --- /dev/null +++ b/jenkins/deployFrontend.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh + +if test "$1" = "master" +then + echo 'Remove old frontend folder' + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "rm -r ~/simco-dashboard/backend/frontend" + echo 'Copy frontend build to OlberryPi' + scp -i /etc/ssh/simco_key -r frontend/build simco-jenkins@gitea.oliver.boehlk.io:~/simco-dashboard/backend + echo 'Rename build folder to frontend' + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "mv ~/simco-dashboard/backend/build ~/simco-dashboard/backend/frontend" + echo "Start node server" + ssh -i /etc/ssh/simco_key simco-jenkins@gitea.oliver.boehlk.io "cd ~/simco-dashboard/backend && yarn run start" & +else + echo "Skipping for non-master branch" +fi