[CowAPI] 37. Springboot + Jenkins

준돌·2022년 7월 19일
1

오늘의 Cow

목록 보기
41/45

1. 목표

  • 젠킨스를 이용하여 백엔드 배포 자동화 및 무중단 배포

2. 준비물

## 1. github 레포지토리
git clone git@github.com:Oh-JunYoung/CowAPI.git
## 배포 테스트 (수작업)
## 1. 프로젝트 경로로 이동
cd {project path}

## 2. 빌드
chmod +x ./gradlew
./gradlew build

## 3. jar
nohup java -jar {name}.jar &> /dev/null &

3. 젠킨스

## 파이프라인 구성

echo "---build start---"

node {
    stage('Clone') {
        echo '>>> Git repository Clone'
        git branch: 'dev', credentialsId: {credentialsId} , url: {git url}
    }

    stage('Move to Path') {
        echo '>>> Move to Deploy Path'
        sh 'sudo ./jenkins/MovePath.sh'
    }

    stage('Pull') {
        echo '>>> Git repository Clone'
        sh 'sudo ./jenkins/GitPull.sh'
    }

    stage('Build') {
        echo '>>> Gradle project Build'
        sh 'sudo ./jenkins/Build.sh'
    }

    stage('Test') {
        echo '>>> Gradle project Test'
        sh 'sudo ./jenkins/Test.sh'
    }

    stage('Kill') {
        echo '>>> Gradle project Deploy'
        sh 'sudo ./jenkins/KillProcess.sh'
    }

    stage('Deploy') {
        echo '>>> Gradle project Deploy'
        sh('JENKINS_NODE_COOKIE=dontKillMe && nohup ./jenkins/Deploy.sh &')
    }
}
  • webhook

4. 결과

profile
눈 내리는 겨울이 좋아!

0개의 댓글