• 목표
    • 각 프로젝트 별로 Pipeline Script 작성시 반복 되는 코드 부분을 Shared Library로 분리

  • Shared Library 소스 Git 생성
  • Shared Library 구조

(root)

├─resources

│  │  └─grobal.yaml
│  ├─src
│  │  └─org
│  │      └─foo 
│  │          └─bar.groovy
│  └─vars

│  │  └─main.groovy

 

//vars/main.groovy
def call() {

	node {
    
		stage('Git Cehckout') {
			//Jenkins UI에서 설정한 Pipeline Script Git URL 주소를 가져옴
			gitUrl = scm.getUserRemoteConfigs()[0].getUrl();
            
			//Jenkins Build Parameter 정보 출력
			echo "Parameter ::: ${params}"
            
			//tag Parameter 정보가 있으면 tag로 Git Checkout 없으면 branch로 Checkout
			def refName
			if(params.tag) {
				refName = "refs/tags/${params.tag}"
			}else {
				refName = "refs/heads/${params.branch}"
			}
            
			scmInfo = checkout scm: [$class: 'GitSCM',
                          userRemoteConfigs: [[url: gitUrl, credentialsId: 'befe985e-3cf8-430f-bb9f-d8bc55961420']],
                                   branches: [[name: "${refName}"]]],
                              poll: false
		}
	}
}

  • Jenkins에  Shared Library 등록

Jenkins 관리 > 시스템 설정 > Global Pipeline Libraries

1. Shared Library 명을 입력한다.

   아래와 같이 프로젝트의 jenkinsfile에서 이 Name으로 Library를 사용한다고 명시를 해줘야 한다.

//Prject/ci/jenkinsfile

@Library('sample-shared') _

node{
	stage('Start'){
		main()
	}
}

2. branch 명을 입력

3. Git 정보 입력

 

'DevOps > Jenkins' 카테고리의 다른 글

Jenkins Pipeline 시작 - Jenkins UI 구성  (0) 2020.01.17

+ Recent posts