본문 바로가기

Kubernetes

Github WebHooks 연동하여 Jenkins 빌드 자동화

반응형

Jenkins Pipeline 개념

젠킨스 파이프라인은 연속적인 작업들을 묶어서 관리할 수 있게 만드는 Jenkins Plugin 입니다.

파이프라인을 작성하는 데에는 두가지 문법이 존재합니다.

 

 

Declarative

pipeline {
    agent any 
    stages {
        stage('Build') { 
            steps {
                // 
            }
        }
        stage('Test') { 
            steps {
                // 
            }
        }
        stage('Deploy') { 
            steps {
                // 
            }
        }
    }
}

Scripted

node {  
    stage('Build') { 
        // 
    }
    stage('Test') { 
        // 
    }
    stage('Deploy') { 
        // 
    }
}

 

 

GitHub Webhook을 사용하여 GitHub 리포지토리에 커밋이 발생할 때 Jenkins에서 자동으로 빌드되도록 설정해 보겠습니다.

 

1. Github Personal Access Token 생성

Github private repository 를 이용하고 있으므로 먼저 GitHub 개인 액세스 토큰을 생성해야 합니다.

  • GitHub 웹사이트에서 프로필 아이콘을 클릭합니다.
  • 드롭다운 메뉴에서 "Settings"를 선택합니다.

Personal Access Tokens 메뉴로 이동합니다.

"Settings" 페이지에서 좌측 메뉴에서 "Developer settings"로 이동합니다.

 

 

 

1. Personal access tokens 클릭

2. Tokens(classic) 클릭

3. Generate new token 클릭

4. Generate new token (classic) 클릭

2. Jenkins Credentials 생성

이제 생성한 GitHub Personal Access Token을 Jenkins에 등록하도록 하겠습니다.

Jenkins 관리 클릭 > Manage Credentials 클릭

 

(global) 클릭

Add Credentials 버튼 클릭

 

 

Username은 Github ID를 적어줍시다.

Password는 위에서 생성한 Github Personal Access Token 를 입력해 주면 됩니다.

ID필드에 식별 가능한 자격 증명 ID를 입력합니다.

다 입력해 주고 Create 버튼을 클릭해 주면 됩니다.

 

3. Github Repository Webhook 생성

이제 Jenkins와 연동할 Github Repository에 들어가서 Webhook를 생성하겠습니다.

Settings 클릭 > Webhooks 클릭 > Add webhook 버튼 클릭

 

 

 

Payload URL에 젠킨스주소에 /github-webhook/ 를 추가해서 입력하면 됩니다.

Content type 은 _application/json_를 선택해 주고 Add webhook 버튼을 클릭하면 webhook이 생성됩니다.

 

 

5. Jenkins pipeline 생성

 

 

GitHub project 클릭하고 Project url를 입력하면 됩니다.

  • branch 부분은 없이 project url를 입력해야 합니다.

 

 

GitHub hook trigger for GITScm polling 클릭

 

 

Pipeline script를 Github repository에 생성하였으므로 Definition에서 Pipeline script from SCM를 선택합니다.

SCM은 GIT으로 선택하고

Repository URL를 입력하고 Credentials 위에 생성한 것을 선택하면 됩니다.

Branch Specifier 에서 ****job를 빌드할 브랜치를 선택하고

Github repository에 Pipeline script 가 있는 Path를 Script Path에 입력하면 됩니다.

 

 

저장 버튼을 누르고 해당 Github repository에 커밋을 발생시키면 Pipeline이 실행되는 것을 확인할 수 있습니다.