본문 바로가기
CI&CD/젠킨스

[Jenkins] 3장 - 젠킨스 2.x 릴리스에서 새로 생긴 기능들

by 책 읽는 개발자_테드 2022. 2. 17.
반응형

초보를 위한 젠킨스 2 활용 가이드 2/e를 읽고, 정리한 글입니다.

 

목차

· 젠킨스 설정 마법사

· 새로운 젠킨스 파이프라인 잡

· 서술적 파이프라인 문법

· 젠킨스 파이프라인 문법 도구

· 멀티브랜치 파이프라인

· 젠킨스 블루오션


젠킨스 설정 마법사


젠킨스 잠금 해제하기

· 젠킨스에 처음 접속하면, 초기 관리자 비밀번호를 이용해 잠금을 해제해야 한다. 비밀번호는 jenkens_home 폴더의 initialAdminPassword 파일에 있다. 전체 파일 경로는 파일에서 확인할 수 있다.

 

젠킨스 커스터마이징

젠킨스 잠금 해제 후에는 다음 화면과 같이 젠킨스 플러그인 설치를 위한 두 가지 옵션이 나타난다.  

 

· Install suggested plugins: Pipeline as Code나 Git 등 젠킨스 커뮤니티에서 추천하는 일반적인 플러그인이 모두 설치된다.

· Select pulgins to install: 설치할 플러그인을 고를 수 있다.

 

이 중 "Select plugins to install"을 선택한다. 다음과 같이 추천 플러그인은 이미 선택돼 있다.

하단의 Install을 눌러 플러그인을 설치한다.

 

플러그인이 설치된 후 관리자를 만드는 화면이 나타난다.

 

 

내용을 작성한 후 "Save and Finish" 버튼을 눌러 새 관리자를 만들거나, "Skip and continue as admin" 버튼을 눌러 초기 관리자로 진행한다.

 

새로운 젠킨스 파이프라인 잡


파이프라인을 만드는 방식

· 예전 방식: 프리스타일잡, 각 CI 단계를 젠킨스 잡을 이용해 구성하는 것이다. 웹 기반의 GUI로 동작하는 설정 방식으로, CI 파이프라인에 변경 사항을 만들기 위해 젠킨스에 로그인해 각각의 프리스타일 잡의 설정을 변경해야했다.

· 새로운 방식: Pipeline as Code, 모든 CI/CD 파이프라인 코드로 작성하는 것으로 프로그래밍과 버전 관리를 지원한다.

- 장점:

   1. 프로그래밍이 가능하다.

   2. 모든 CI/CD 파이프라인 설정이 하나의 파일(Jenkinsfile)을 이용해 표현 가능하다.

   3. 일반 코드처럼 버전 관리가 가능하다.

   4. 파이프라인을 서술적 파이프라인 문법을 이용해 정의할 수 있게 하여 쉽고 아름답게 코딩할 수 있다.

 

젠킨스 파이프라인 잡 만들기

1. 젠킨스 대시보드에서 "새로운 Item" 링크를 누른다.

2. 여러 종류의 젠킨스 잡 중 Pipeline을 선택하고, Enter an item name란에 파피프라인의 이름을 작성한 후 "OK" 버튼을 누른다.

 

 

3. 모든 종류의 젠킨스 잡(프리스타일, 파이프라인, 멀티브랜치 등)을 탭으로 볼 수 있는 화면으로 이동한다. 이 중 PipeLine 탭을 클릭한다. 각 영역의 의미는 아래와 같다.

 

4. 파이프라인이 어떻게 동작하는지 알아보기 위해 Script 영역에 코드를 작성해보자. 제킨스에서 제공된 샘플 코드를 이용하자. "try sample pipleline..." 영역을 선택한 후 Scripted Pipeline 옵션을 화면처럼 선택하자.

 

Script 영역이 샘플 코드로 채워진다.

node {
    def mvnHome
    stage('Preparation') { // for display purposes
        // Get some code from a GitHub repository
        git 'https://github.com/jglick/simple-maven-project-with-tests.git'
        // Get the Maven tool.
        // ** NOTE: This 'M3' Maven tool must be configured
        // **       in the global configuration.
        mvnHome = tool 'M3'
    }
    stage('Build') {
        // Run the maven build
        withEnv(["MVN_HOME=$mvnHome"]) {
            if (isUnix()) {
                sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
            } else {
                bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
            }
        }
    }
    stage('Results') {
        junit '**/target/surefire-reports/TEST-*.xml'
        archiveArtifacts 'target/*.jar'
    }
}

 

파이프라인 스크립트를 알아보자.

- node { } 영역: 메인 컨테이너로 젠킨스 마스터에서 파이프라인 스크립트 영역 전체를 실행하라는 것을 정의한다.  해당 영역에는 세 개의 컨테이너가 입력된다. 

stage('Preparation') {...}
stage('Build') {...}
stage('Results') {...}

 

- Preparation 단계: 메이븐 소스코드를 깃허브 저장소에서 다운로드하고, 젠킨스가 전역 환경 설정에서 정의된 M3 메이븐 도구를 사용하게 한다. (파이프라인을 실행하기 전 이를 수행해야 한다.)

- Build 단계: 메이븐 프로젝트를 빌드한다.

- Results 단계: 빌드 결과물을 JUnit 테스트 결과와 함께 묶어낸다.

 

5. 하단의 "Save" 버튼을 눌러 파이프라인의 변경 사항을 저장한다.

 

전역 도구 환경 설정 페이지

· 파이프라인을 실행하기 전에 전역 도구 환경 설정 페이지()를 알아봐야한다. 여기서 모든 젠킨스 파이프라인에서 사용될 도구를 설정할 수 있다. ex) 자바, 메이븐, 깃 등

 

파이프라인을 위해 전역 도구 환경 설정에서 메이븐 도구를 설정해보자.

1. 전역 도구 환경 설정 페이지에 접근한다. 다음 중 하나를 수행한다.

ⓐ 젠킨스 대시보드에서 Manage Jenkins > Global Tool Configuration을 클릭한다.

ⓑ 브라우저에서 http://<IP Address of your Jenkins server>:8080/configureTools/에 접속한다.

2. 스크롤을 내려 Maven 영역을 찾고, Add Maven 버튼을 클릭한다.

- 메이븐 설치를 위해 Name 영역을 고유한 이름으로 채운다.

- 기본 설정인 Install from Apache를 사용한다. 이것은 젠킨스가 메이븐 애플리케이션을 아파치에서 다운로드하게 한다.

- Version 영역에서 최신 메이븐 버전을 선택한다.

3. 메이븐 프로젝트를 빌드하기 위해 자바를 설치한다.

4. 메이븐 설정을 완료한 후 페이지 하단의 Save 버튼을 클릭한다.

 

젠킨스 파이프라인 스테이지 뷰

· 젠킨스 스테이지 뷰에서 파이프라인의 다양한 단계의 진행 상황을 실시간으로 확인할 수 있다.

- 스테이지 뷰는 젠킨스 파이프라인과 멀티브랜치 파이프라인 잡에서만 동작한다.

 

1. 젠킨스 대시보드에서 앞서 생성한 파이프라인(pipeline_demo)의 빌드 트리거 아이콘을 눌러 파이프라인을 실행한다.

 

2. 스테이지 뷰를 보기 위해 파이프라인 이름을 클릭한다. 스테이지 뷰 페이지는 다음과 같다.

 

3. 특정한 스테이지의 빌드 로그를 보기 위해 상태 박스 위에 맘우스를 올려놓으면 로그를 볼 수 있는 옵션이 나타난다. 이를 클릭하면, 로그를 보여주는 팝업이 나타난다.

 

4. 왼쪽 Build History 탭에서는 실행된 모든 빌드를 보여준다. 원하는 빌드 번호를 마우스 오른쪽 버튼으로 클릭한 후 Console Output으로 클릭하자.

 

서술적 파이프라인 문법


· 서술적 파이프라인 문법은 그루비(Groovy) 문법의 좀 더 간단하고 구조화된 버전이다.

 

서술적 파이프라인의 기본 구조

· 서술적 파이프라인은 노드블록, 스테이지블록, 디렉티브, 스텝의 집합이다.

· 하나의 노드 블록은 여러 스테이지블록을 포함할 수 있고, 반대도 가능하다.

· 여러 스테이지를 동시에 실행할 수 있다.

 

노드 블록

· 노드 블록은 스테이지 블록, 디렉티브, 스텝이 실행될 젠킨스 에이전트를 정의한다.

node ('<parameter>') {<constituents>}

 

- 정의: 스테이지, 디렉티브, 스텝이 실행될 노드

- 구성: 여러 개의 스테이지 블록, 디렉티브 또는 스텝

- 필수 여부: 필수

- 파라미터: any, 레이블(label)

 

스테이지 블록

·  스테이지 블록은 같은 목적을 가진 스템과 디렉티브의 모음이다.

stage ('<parameter>') {<constituents>}

- 정의: 스텝과 디렉티브의 모음

- 구성: 여러 개의 노드 블록, 디렉티브 또는 스텝

- 필수 여부: 필수

- 파라미터: 스테이지의 이름 (필수)

 

디렉티브

· 디렉티브는 환경 변수 옵션, 파라미터, 트리거, 툴을 제공해 노드 블록과 스테이지 블록, 스텝을 지원한다.

- 정의: 스테이지가 실행될 노드

- 구성: 환경 변수, 옵션, 파라미터, 트리거, 툴

- 필수 여부: 필수가 아니지만 ,모든 CI/CD 파이프라인이 디렉티브를 가지고 있다.

- 파라미터: 없음

 

스텝

· 스텝은 배치 스크립트, 셸 스크립트, 다른 실행 가능한 커맨드가 될 수 있다.

· 스템의 목적은 저장소를 복사하거나, 코드를 빌드하거나, 테스트를 수행하거나, 빌드 결과물을 저장소에 올리거나, 정적 코드 분석을 수행하는 것이다.

· 서술적 파아프라인을 구성하는 가장 중요한 요소다.

- 정의: 젠킨스에서 무엇을 할지 명령을 내리는 것

- 구성:  명령어, 스크립트 등 파이프라인의 핵심 요소

- 필수 여부: 필수가 아니지만, 모든 CI/CD 파이프라인이 디렉티브를 가지고 있다.

- 파라미터: 없음

 

다음은 앞서 사용한 파이프라인 코드를 노드 블록, 스테이지 블록, 디렉티브, 스텝으로 나누어 주석을 이용해 표시한 것이다.

// Node block
node {
	// Directive 1
    def mvnHome
    
    // Stage block 1
    stage('Preparation') { // for display purposes
        // Step 1
        git 'https://github.com/jglick/simple-maven-project-with-tests.git'
        // Directive 2
        mvnHome = tool 'M3'
    }
    
    // Stage block 2
    stage('Build') {
        // Step 2
        withEnv(["MVN_HOME=$mvnHome"]) {
            if (isUnix()) {
                sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
            } else {
                bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
            }
        }
    }
    
    // Stage block 3
    stage('Results') {
    	 // Step 3
        junit '**/target/surefire-reports/TEST-*.xml'
         // Step 4
        archiveArtifacts 'target/*.jar'
    }
}

 

· 위 코드에서 node('master')에서 문자열 master는 파라미터(레이블)로 젠킨스에게 젠킨스 마스터를 이용해 노드 블록을 실행하라고 알려준다.

· any를 파라미터로 사용하면 모든 스테이지 노드와 스텝, 디렉티브는 임의의 젠킨스 슬레이브 중 하나에서 수행된다.

· 추가적인 서술적 파이프라인 문법: https://www.jenkins.io/doc/book/pipeline/syntax/

 

젠킨스 파이프라인 문법 도구


· 젠킨스 파이프라인 문법 도구는 파이프라인 코드를 작성하기 위한 빠르고 쉬운 방법이다.

· 파이프라인 문법 도구는 젠킨스 파이프라인 잡 안에서 사용 가능하다.

 

파이프라인 메이븐 통합 플러그인 설치

· 파이프라인 메이븐 통합 플러그인은 파이프라인 코드 안에서 메이븐의 사용을 가능하게 해준다.

1. 대시보드의 Jenkins 관리 > 플러그인 관리 > 설치 가능 탭을 클릭한다.

2. 필터에 Pipeline Maven Integration을 입력해 관련 플러그인을 찾는다.

3. 해당 플러그인의 체크박스에 클릭한 후 Install without restart 버튼을 클릭해 설치한다. 

4. 몇몇 플러그인을 사용하기 전 재부팅해야 한다. 설치 페이지에서 아래에서 "섳리가 끝나고 실행중인 작없이 없으면 Jenkins 재시작" 옵션을 체크한다.

 

파이프라인 문법 도구를 이용해 젠킨스 파이프라인 만들기

다음과 같이 새로운 젠킨스 파이프라인 잡을 만든다.

1. 젠킨스 대시보드에서 New Item 링크를 클릭한다.

2. 다양한 젠킨스 잡을 선택하는 화면에서 Pipeline을 선택한 후, Enter an item 영역에 파이프라인의 이름을 정한다. 하단의 Ok 버튼을 클릭한다.

3. Pipeline 탭에서 Pipeline Syntax 링크를 클릭하면, 다음과 같은 새로운 탭이 열린다.

4. Snippet Generator를 이용해 다양한 블록과 스텝을 위한 파이프라인 코드를 만들 수 있다.

5. 노드 블록을 위한 코드를 생성하자.

ⓐ Step 섹션 아래 Sample Step 영역에서 node: Allocate node를 선택한다.

ⓑ Label 영역에 문자열 master를 입력한다.

- 이를 통해 젠킨스가 젠킨스 마스터를 이용해 파이프라인을 실행하게 정의한다.

ⓒ Generate Pipeline Script 버튼을 클릭해 코드를 생성한다.

ⓓ 생성된 코드를 복사해 에디터에 보관한다.

 

6. Preparation과 Build 두 개의 스테이지 블록을 생성하자.

ⓐ Step 섹션 아래 Sample Step 영역에서 stage: Stage를 선택한다.

ⓑ Stage Name 영역에 문자열 Preparation을 추가한다.

ⓒ Generate Pipeline Script 버튼을 클릭해 코드를 생성한다.

ⓓ 생성된 코드를 복사해 이전에 생성한 블록 안에 복사한다.

 

7. 이전 단계를 반복해 Build라는 이름의 스테이지 블록을 생성한다. 생성된 코드를 노드 블록 안, Preparation이라는 이름의 스테이지 블록 밑에 복사한다.

 

7. 지금까지 파이프라인 코드의 구조는 다음과 같다.

node('master') {
    stage('Preparation') {
	}
	stage('BUild') {
	}
}

 

8. 깃허브에서 소스코드를 내려받는다.

ⓐ Sample Step 영역에서 git:Git을 선택한다.

ⓑ Repository URL 영역에 다음 예제의 깃허브 저장소를 추가한다.

https://github.com/jglick/simple-maven-project-with-tests.git

ⓒ Generate Pipeline Script 버튼을 클릭해 코드를 생성한다.

ⓓ 생성된 코드를 복사해 이전에 생성한 Preparation 스테이지 블록 안에 복사한다.

 

9. 디렉티브를 생성해 젠킨스가 앞서 전역 도구 환경 설정에서 설정한 메이븐을 사용하게 한다.

ⓐ Sample Step 영역에서 withMaven: Provide Maven environment를 선택한다.

ⓑ Maven 영역에서 우리가 이전에 전역 도구 환경 설정에서 설정한 M3를 선택한다.

ⓒ Generate Pipeline Script 버튼을 클릭해 코드를 생성한다.

ⓓ 생성된 코드를 복사해 이전에 생성한 Build 스테이지 블록 안에 복사한다.

 

10. 메이븐 빌드 명령을 위한 파이프라인 코드를 생성하자.

ⓐ Sample Step 영역에서 sh: Shell Script를 선택한다.

- 셸 스크립트를 만들기 위한 단계다.

ⓑ Shell Script 영역에 mvn -Demaven.test.failure.ignore clean package를 입력한다.

- 빌드, 테스트, 코드 패키징을 위한 메이블 명령어다. 이 명령어는 셸 스크립트의 내용이 된다.

ⓒ Generate Pipeline Script 버튼을 클릭해 코드를 생성한다.

ⓓ 생성된 코드를 복사해 이전에 생성한 withMaven 디렉티브 안에 복사한다.

 

11. 최종적으로 파이프라인 스크립트는 다음과 같다.

node('master') {
    stage('Preparation') {
    	git 'https://github.com/jglick/simple-maven-project-with-tests.git'
	}
	stage('BUild') {
    	withMaven(globalMavenSettingsConfig: 'null', jdk: 'null', maven: 'M3', mavenSettingsConfig: 'null') {
			sh 'mvn -Demaven.test.failure.ignore clean package'
		}
	}
}

 

12. 파이프 라인 잡 설정 페이지로 이동한다.

13. Pipeline 섹션으로 스크롤한 후 Script 영역에 작성한 파이프라인 코드를 복사한다.

14. 하단의 Save 버튼을 클릭한다.

 

멀티브랜치 파이프라인


· 멀티브랜치 파이프라인은 사용자 소스코드 저장소의 모든 브랜치에 대해 파이프라인을 자동으로 생성하게 해준다. 

· 멀티브랜치 파이프라인은 Jenkinsfile을 통해 동작하고, 이 파일은 소스코드와 함께 버전 관리 저장소에 들어간다. 

- Jenkinsfile은 CI 파이프라인을 정의하는 파이프라인 스크립트다.

 

· 멀티브랜치 파이프라인은 깃이나 깃허브 저장소의 브랜치 중 어떤 곳에서 변경이 발생하면 자동으로 빌드를 시작하기 위해 설계됐다.

 

깃 허브 인증을 젠킨스에 추가하기

· 깃허브 계정 인증을 젠킨스에 추가해야 둘을 연동시킬 수 있다.

· 젠킨스의 Credentials plugin을 통해 이를 진행한다.

 

1. 젠킨스 대시보드에서 Credentials > System > Global credentials(unrestricted)를 클릭한다.

 왼쪽 사이드 메뉴의 Add Credentials 링크를 클릭한다.

2. 다음 화면의 영역을 채운다.

ⓐ Kind 영역에서 Username with password를 선택한다.

ⓑ Scope 영역에서 Global (Jenkins nodes, items, all child items, etc)를 선택한다.

ⓒ Username 영역에 사용자의 깃허브 사용자명을 입력한다.

ⓓ Password 영역에 사용자 깃허브 암호를 입력한다.

ⓔ ID 영역에 문자열을 입력해 인승을 위한 고유한 ID를 생성한다.

ⓕ Descript 영역에 의미있는 설명을 입력한다.

ⓖ 완료되면 OK 버튼을 클릭한다.

 

3. 젠킨스에 인증을 추가했다. 이제 젠킨스와 깃허브를 연동시키자.

 

젠킨스에서 깃허브 Webhooks 설정하기

1. 젠킨스 대시보드에서 Manage Jenkins > Configure System을 클릭하고, GIthub 섹션을 찾는다.

 

2. Add Github Server - GitHub Servers를 클릭한다. 설정해야할 다양한 영역이 나타난다.

ⓐ Name 영역에 문자열을 적어 깃허브 서버의 이름을 정한다.

ⓑ 공용 깃허브 계정을 사용 중이면 API URL 영역에 기본값인 https://api.github.com 을 작성하고, 깃허브 엔터프라이즈 버전을 사용 중이라면 이에 해당하는 API 주소를 입력한다.

ⓒ mange Hooks 옵션을 체크한다.

ⓓ "고급..." 버튼을 클릭한다.

ⓔ "Additional actions" 영역에서 "Manage additional Github actions"를 클릭한 후 목록에서 "Convert login and password to token"을 선택한다.

 

ⓕ 설정할 새로운 영역에서 기본적으로 선택돼 있는 From credentials 옵션을 선택한다. Credentials 영역에 앞서 생성한 깃허브 인증을 선택한다.

 

ⓖ Create token credentials 버튼을 클릭하면, 깃허브 계정에 접근하기 위한 새로운 개인 접속 토큰이 생성된다. 

 

새로운 깃허브 저장소 만들기 & Jenkinsfile 이용하기

· 멀티브랜치 파이프라인과 연동되는 깃허브 저장소를 만들자.

 

1. 깃허브 계정에 로그하고, 깃허브 저장소를 생성한다.

2. 생성된 저장소에 Jenkinsfile을 생성하고, 아래 코드를 입력한 후 저장한다.

- 젠킨스 멀티브랜치 파이프라인은 Jenkinsfile을 활용한다. 

node ('master') {
  checkout scm
  stage('Build') {
    withMaven(maven: 'M3') {
      if (isUnix()) {
        sh 'mvn -Dmaven.test.failure.ignore clean package'
      }
      else {
        bat 'mvn -Dmaven.test.failure.ignore clean package'
      }
    }
    stage('Results') {
      junit '**/target/surefire-reports/TEST-*.xml'
      archive 'target/*.jar'
    }
  }
}

 

젠킨스에서 멀티브랜치 파이프라인 생성하기

1. 젠킨스 대시보드에서 새로운 Item 링크를 클릭한다.

2. 다양한 젠킨스 잡 중에서 Multibranch Pipeline을 선택하고, Enter and item name 영역에 파이프라인 이름을 작성한 후 페이지 하단의 OK 버튼을 틀릭한다.

3. 이동한 페이지에서 Branch Sources 섹션으로 스크롤을 내린다.

4. Add Source 버튼을 클릭한 후 Github을 선택한다. 다양한 영역의 설정을 입력한다.

ⓐ Credentials 영역에서 앞서 생성한 Credential을 선택한다.

ⓑ Owner 영역에 깃허브 조직의 이름이나 사용자명을 입력한다.

ⓒ Repository 영역에서 앞서 생성한 깃허브 저장소를 선택한다.

ⓓ 스크롤을 아래로 내려 Save 버튼을 클릭한다.

 

젠킨스 멀티브랜치 파이프라인 인 액션

1. 젠킨스 대시보드에서 멀티브랜치 파이프라인을 클릭한다.

2. 왼쪽 사이드 메뉴에서 Scan Repository Now 링크를 클린한다.

- 저장소에서 Jenkinsfile이 있는 브랜치들을 스캔한 후, Jenkinsfile을 가진 모든 브랜치의 파이프라인을 실행하게된다.

- 항상 저장소를 스캔할 필요는 없다. GitHub Webhooks를 설정해 사용자의 깃허브 저장소에 새로운 브랜치나 커밋이 푸시될 때 자동으로 파이프라인을 실행시킬 수 있다. 단, 해당 브랜치에 저장ㅅ의 변경 사항이 생겼을 때 어떤 작업이 수행돼야 하는지 알려주는 Jenkinsfile이 꼭 있어야한다.

 

멀티브랜치 파이프라인 테스트 -  새로운 기능 브랜치 만들기

· 마스터 브랜치에서 기능 브랜치를 새로 만들어 젠킨스가 파이프라인을 실행시키는지 알아보자.

 

1. 앞서 만든 깃허브 저장소로 이동한다.

2. feature 브랜치를 생성한다.

 

3. 새 기능 브랜치에 대한 젠킨스 파이프라인이 즉시 실행되는 걸 확인할 수 있다.

 

젠킨스 블루오션


· 젠킨스 블루오션은 젠킨스를 다루는 새로운 방식이며, 젠킨스의 주요 애플리케이션에 대한 UI 보조기능에 가깝다.

· 젠킨스 블루오션의 새 기능:

1. 향상된 시각화

2. 파이프라인 에디터

3. 개인화

4. 깃과 깃허브를 위한 쉽고 빠른 파이프라인 설정 마법사

 

젠킨스 블루오션 플러그인 설치

1. 젠킨스 대시보드에서 Jenkins 관리 -> 플러그인 관리를 클릭한다.

2. Plugin Manage 페이지에서 설치 가능 탭을 클릭하고, Blue Ocean을 찾는다. Blue Ocean을 선택하고, Install without restart를 클릭한다.

Install without restart 클릭 후 이동하는 화면

 

블루오션에서 기본적인 젠킨스 파이프라인 살펴보기

· 앞서 생성한 기존에 존재하는 젠킨스 파이프라인을 시각화해보자.

 

1. 위 절차대로 블루오션을 설치하면, 젠킨스 대시보드 왼쪽 사이드 메뉴에 블루 오션 열기 메뉴가 생성된다. 이것을 클릭한다.

2. 이동한 화면의 내용은 다음과 같다.

ⓐ Jenkins 관리 페이지로 이동

ⓑ 지금 보고있는 젠킨스 블루오션 대시보드로 이동

ⓒ 기존 젠킨스 대시보드로 이동

ⓓ 깃이나 깃허브 기반 프로젝트를 위한 파이프라인 생성 마법사로 이동

ⓔ 파이프라인 목록

 

3. 여기서 이전에 생성한 multibranch-pipeline-demo 파이프라인을 클릭한다. 이동한 화면의 내용은 다음과 같다.

ⓐ 파이프라인 설정 페이지로 이동

ⓑ 현재와 과거의 파이프라인을 나열

ⓒ 모든 브랜치의 파이프라인을 하나의 화면으로 보여줌

ⓓ 사용자 브랜치의 모든 pull requests를 나열

ⓔ 해당 파이프라인 리플레이하기

 

4. 각각의 빌드 버튼을 클릭하면 다음 화면과 같이 해당 파이프라인의 빌드 페이지로 이동한다.

 

블루오션에서 파이프라인 생성하기

1. 예제에 사용할 저장소(https://github.com/nikhilpathania/hello-world-example.git)를 사용자의 깃허브로 포크한다. 

- 포크한 저장소의 pom.xml 파일에 다음설정을 추가한다. 

 

	<properties>
   		<maven.compiler.source>1.6</maven.compiler.source>
   		<maven.compiler.target>1.6</maven.compiler.target>
 	</properties>

 

해당 설정을 추가하지 않으면, 다음 오류가 발생한다.

Error "Source option 5 is no longer supported. Use 6 or later" on Maven compile

 

2. 저장소에 Jenkinsfile을 생성하고, 다음 코드를 입력한다.

pipeline {
  agent {
    node {
      label 'built-in'
    }
  }
  stages {
    stage('Build') {
      steps {
        withMaven(maven: 'M3') {
          sh 'mvn clean install'
        }
      }
    }
    stage('Results') {
      steps {
        junit '**/target/surefire-reports/TEST-*.xml'
        archiveArtifacts 'target/*.jar'
      }
    }
  }
}

 

- jenkins 2.307 버전 이후에는 label에 master 키워드를 입력하면 오류가 발생한다. 대신에 built-in을 입력해준다.

 

 

3. 젠킨스에 JUnit 플러그인을 설치한다.

4. 젠킨스 블루오션 대시보드에서 새로운 파이프라인을 클릭한다.

5. 이동한 화면에서 GitHub을 선택한다.

6. 깃허브 계정을 위한 깃허브 접근 토큰을 입력하는 창이 등장한다.

create an access token here 링크를 클릭해서 깃허브로 이동해 새로운 토큰을 만들고, 빈칸에 입력한다.

 

7. 원하는 레포지토리가 속한 조직을 선택한다.

 

8. 앞서 포크한 hello-world-example 레포지토리를 선택하고, 파이프라인 생성 버튼을 클릭한다.

9. 해당 브랜치의 파이프라인이 즉시 실행되는걸 확인할 수 있다.

반응형

댓글