ci:Jenkinsfile 2-branch 전략으로 전환 (stage 브랜치 제거, main에서 Stage→승인→Production)
This commit is contained in:
15
Jenkinsfile
vendored
15
Jenkinsfile
vendored
@@ -15,6 +15,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
if (env.BRANCH_NAME == 'main') {
|
if (env.BRANCH_NAME == 'main') {
|
||||||
|
// main: Stage 빌드 먼저 (승인 후 Production 재빌드)
|
||||||
sh "cp /var/lib/jenkins/env-files/react/.env.stage .env.local"
|
sh "cp /var/lib/jenkins/env-files/react/.env.stage .env.local"
|
||||||
} else {
|
} else {
|
||||||
def envFile = "/var/lib/jenkins/env-files/react/.env.${env.BRANCH_NAME}"
|
def envFile = "/var/lib/jenkins/env-files/react/.env.${env.BRANCH_NAME}"
|
||||||
@@ -39,14 +40,10 @@ pipeline {
|
|||||||
sshagent(credentials: ['deploy-ssh-key']) {
|
sshagent(credentials: ['deploy-ssh-key']) {
|
||||||
sh """
|
sh """
|
||||||
rsync -az --delete \
|
rsync -az --delete \
|
||||||
--exclude='.git' \
|
--exclude='.git' --exclude='.env*' --exclude='ecosystem.config.*' \
|
||||||
--exclude='.env*' \
|
|
||||||
--exclude='ecosystem.config.*' \
|
|
||||||
.next package.json next.config.ts public node_modules \
|
.next package.json next.config.ts public node_modules \
|
||||||
${DEPLOY_USER}@114.203.209.83:/home/webservice/react/
|
${DEPLOY_USER}@114.203.209.83:/home/webservice/react/
|
||||||
|
|
||||||
scp .env.local ${DEPLOY_USER}@114.203.209.83:/home/webservice/react/.env.local
|
scp .env.local ${DEPLOY_USER}@114.203.209.83:/home/webservice/react/.env.local
|
||||||
|
|
||||||
ssh ${DEPLOY_USER}@114.203.209.83 'cd /home/webservice/react && pm2 restart sam-react'
|
ssh ${DEPLOY_USER}@114.203.209.83 'cd /home/webservice/react && pm2 restart sam-react'
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
@@ -60,13 +57,10 @@ pipeline {
|
|||||||
sshagent(credentials: ['deploy-ssh-key']) {
|
sshagent(credentials: ['deploy-ssh-key']) {
|
||||||
sh """
|
sh """
|
||||||
ssh ${DEPLOY_USER}@211.117.60.189 'mkdir -p /home/webservice/react-stage/releases/${RELEASE_ID}'
|
ssh ${DEPLOY_USER}@211.117.60.189 'mkdir -p /home/webservice/react-stage/releases/${RELEASE_ID}'
|
||||||
|
|
||||||
rsync -az --delete \
|
rsync -az --delete \
|
||||||
.next package.json next.config.ts public node_modules \
|
.next package.json next.config.ts public node_modules \
|
||||||
${DEPLOY_USER}@211.117.60.189:/home/webservice/react-stage/releases/${RELEASE_ID}/
|
${DEPLOY_USER}@211.117.60.189:/home/webservice/react-stage/releases/${RELEASE_ID}/
|
||||||
|
|
||||||
scp .env.local ${DEPLOY_USER}@211.117.60.189:/home/webservice/react-stage/releases/${RELEASE_ID}/.env.local
|
scp .env.local ${DEPLOY_USER}@211.117.60.189:/home/webservice/react-stage/releases/${RELEASE_ID}/.env.local
|
||||||
|
|
||||||
ssh ${DEPLOY_USER}@211.117.60.189 '
|
ssh ${DEPLOY_USER}@211.117.60.189 '
|
||||||
ln -sfn /home/webservice/react-stage/releases/${RELEASE_ID} /home/webservice/react-stage/current &&
|
ln -sfn /home/webservice/react-stage/releases/${RELEASE_ID} /home/webservice/react-stage/current &&
|
||||||
cd /home/webservice && pm2 reload sam-front-stage 2>/dev/null || pm2 start react-stage/current/node_modules/.bin/next --name sam-front-stage -- start -p 3100 &&
|
cd /home/webservice && pm2 reload sam-front-stage 2>/dev/null || pm2 start react-stage/current/node_modules/.bin/next --name sam-front-stage -- start -p 3100 &&
|
||||||
@@ -104,13 +98,10 @@ pipeline {
|
|||||||
sshagent(credentials: ['deploy-ssh-key']) {
|
sshagent(credentials: ['deploy-ssh-key']) {
|
||||||
sh """
|
sh """
|
||||||
ssh ${DEPLOY_USER}@211.117.60.189 'mkdir -p /home/webservice/react/releases/${RELEASE_ID}'
|
ssh ${DEPLOY_USER}@211.117.60.189 'mkdir -p /home/webservice/react/releases/${RELEASE_ID}'
|
||||||
|
|
||||||
rsync -az --delete \
|
rsync -az --delete \
|
||||||
.next package.json next.config.ts public node_modules \
|
.next package.json next.config.ts public node_modules \
|
||||||
${DEPLOY_USER}@211.117.60.189:/home/webservice/react/releases/${RELEASE_ID}/
|
${DEPLOY_USER}@211.117.60.189:/home/webservice/react/releases/${RELEASE_ID}/
|
||||||
|
|
||||||
scp .env.local ${DEPLOY_USER}@211.117.60.189:/home/webservice/react/releases/${RELEASE_ID}/.env.local
|
scp .env.local ${DEPLOY_USER}@211.117.60.189:/home/webservice/react/releases/${RELEASE_ID}/.env.local
|
||||||
|
|
||||||
ssh ${DEPLOY_USER}@211.117.60.189 '
|
ssh ${DEPLOY_USER}@211.117.60.189 '
|
||||||
ln -sfn /home/webservice/react/releases/${RELEASE_ID} /home/webservice/react/current &&
|
ln -sfn /home/webservice/react/releases/${RELEASE_ID} /home/webservice/react/current &&
|
||||||
cd /home/webservice && pm2 reload sam-front &&
|
cd /home/webservice && pm2 reload sam-front &&
|
||||||
@@ -126,4 +117,4 @@ pipeline {
|
|||||||
success { echo '✅ react 배포 완료 (' + env.BRANCH_NAME + ')' }
|
success { echo '✅ react 배포 완료 (' + env.BRANCH_NAME + ')' }
|
||||||
failure { echo '❌ react 배포 실패 (' + env.BRANCH_NAME + ')' }
|
failure { echo '❌ react 배포 실패 (' + env.BRANCH_NAME + ')' }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user