Skip to content

Instantly share code, notes, and snippets.

@RiansyahTohamba
Last active May 12, 2023 01:59
Show Gist options
  • Save RiansyahTohamba/24a8b847c3d08f34a4608165536c7526 to your computer and use it in GitHub Desktop.
Save RiansyahTohamba/24a8b847c3d08f34a4608165536c7526 to your computer and use it in GitHub Desktop.
pipeline {
agent any
parameters {
booleanParam description: 'Is this a production deployment?', name: 'DEPLOY_PROD_PORTAL'
}
environment {
SSH_HOST = '10.2.xx.yyy'
SSH_USER = 'yaadmin'
STAGING_GATE_PATH = '~/staging/cms/gateway'
STAGING_FRONTEND_PATH = '~/staging/cms/frontend'
PROD_GATE_PATH = '~/production/cms/gateway'
PROD_FRONTEND_PATH = '~/production/cms/frontend'
}
stages {
stage('Install Dependencies on Staging....') {
when {
expression { params.DEPLOY_PROD_PORTAL == false }
}
steps {
sshagent(['ubuntu150']) {
echo "<GATEWAY> pull and npm install on directory staging...."
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${STAGING_GATE_PATH} && git pull origin main && source ~/.nvm/nvm.sh && npm i" '
echo "<FRONTEND> pull and npm install on directory staging...."
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${STAGING_FRONTEND_PATH} && source ~/.nvm/nvm.sh && npm i " '
}
}
}
stage('Install Dependencies on Production....') {
when {
expression { params.DEPLOY_PROD_PORTAL == true }
}
steps {
sshagent(['ubuntu150']) {
echo "<GATEWAY> pull and npm install on directory prod...."
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${PROD_GATE_PATH} && git pull origin main && source ~/.nvm/nvm.sh && npm i" '
echo "<FRONTEND> pull and npm install on directory prod...."
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${PROD_FRONTEND_PATH} && source ~/.nvm/nvm.sh && npm i " '
}
}
}
stage('Running on Staging....') {
when {
expression { params.DEPLOY_PROD_PORTAL == false }
}
steps{
sshagent(['ubuntu150']) {
echo "<GATEWAY> Running on Staging"
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${STAGING_GATE_PATH} && source ~/.nvm/nvm.sh && sh deploy_staging.sh" '
echo "<FRONTEND> Running on Staging"
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${STAGING_FRONTEND_PATH} && source ~/.nvm/nvm.sh && sh deploy_staging.sh" '
}
}
}
stage('Running on Production....') {
when {
expression { params.DEPLOY_PROD_PORTAL == true }
}
steps{
sshagent(['ubuntu150']) {
echo "<GATEWAY> Running on PROD"
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${PROD_GATE_PATH} && source ~/.nvm/nvm.sh && sh deploy_prod.sh" '
echo "<FRONTEND> Running on PROD"
sh 'ssh -o StrictHostKeyChecking=no ${SSH_USER}@${SSH_HOST} -p 2201 "cd ${PROD_FRONTEND_PATH} && source ~/.nvm/nvm.sh && sh deploy_prod.sh" '
}
}
}
}
}
/*
jangan lupa untuk melakukan set pada remote_host untuk ~/.authorized_user
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment