본문 바로가기

DevOps

[Jenkins] Github 프로젝트 Jenkins CICD (2) - Pipeline 작성

github jenkins cicd - pipeline 작성

 

github 리포지토리의 프로젝트를 나만의 Jenkins로 CICD(배포)하는 과정을 기록합니다.

 

👇👇 1편 👇👇

 

[Jenkins] Github 프로젝트 Jenkins 배포 (1) - 환경설정

github 프로젝트를 나만의 jenkins로 배포하기 (1) github 리포지토리의 프로젝트를 나만의 Jenkins로 배포하는 과정을 기록합니다. 💡확인하기 자체 서버(Synology NAS)에 Docker, Docker Compose를 사용합니다. S

devzooo.tistory.com

 

 


 

3. Jenkins Pipeline 생성

새로운 항목 생성하기

신규 아이템을 생성합니다.

jenkins 항목 생성
jenkins 항목 생성 2

 

환경설정

소스 저장소 연결하기

빌드할 github 소스 저장소를 연결합니다.

jenkins 항목 생성 3

pipeline 설정

jenkins가 실행할 명령어들을 정의합니다.

저는 아래 순서대로 정의하였습니다.

  1. github 소스 저장소에서 소스 checkout
  2. build
  3. image 생성
  4. docker 컨테이너 생성 및 실행

참고하기

더보기
pipeline {
    agent any
    
    tools {
        jdk 'jdk17'
    }

    environment {
        JAVA_HOME = 'tool jdk17'
        GIT_URL = '[github clone url].git'
        BRANCH_NAME = '브랜치명'
        CREDENTIALS_ID = '자격증명ID'
        PROJECT_NAME = '프로젝트명'
		IMAGE_NAME = '이미지명'
    }
    
    stages {
        stage('Checkout') {
            steps {
                git url : "${GIT_URL}", branch : "${BRANCH_NAME}", credentialsId : "${CREDENTIALS_ID}"
            }
            post {
                success {
                    echo 'Success Checkout'
                }
                failure {
                    echo 'Fail Checkout'
                }
            }
        }
        
        stage('Build') {
            steps {
                sh 'chmod +x gradlew'
                sh './gradlew clean bootJar -p .'
            }
            post {
                success {
                    echo 'Success Build'
                }
                failure {
                    echo 'Fail Build'
                }
            }
        }
        
        stage('Registry Push') {
            steps {
                sh "docker build --tag [IP]:[port]/${IMAGE_NAME}:${BRANCH_NAME} ."
            }
            post {
                success {
                    echo 'Success Registry Push'
                }
                failure {
                    echo 'Fail Registry Push'
                }
            }
        }
        
        stage('Dockerizing') {
            steps {
                sh 'pwd'
                sh 'ls -l'
                sh "docker-compose -f [docker compose 경로]/docker-compose.yml up -d ${IMAGE_NAME}"
            }
            post {
                success {
                    echo 'Success Dockerizing'
                }
                failure {
                    echo 'Fail Dockerizing'
                }
            }
        }

	}	// END stages
}	// END pipeline

 

4. 실행 및 성공❤️

jenkins pipeline
빌드 성공

 


 

Trouble Shooting

멀쩡히 잘 배포되던 pipeline에서 JAVA_HOME(JDK) 에러가 발생할 때

JDK error

설정한 JDK 압축파일 푼 디렉토리명이 변경되었을 수 있습니다.

해당 경로에서 다시 다운로드받아 디렉토리명을 확인하여 Subdirectory of extracted archive 값을 변경해줍니다.

 

 

728x90