본문 바로가기

SW개발

젠킨스 파이프라인(Jenkins pipeline) - 빌드 파라미터 넣기

2019/05/08 - [SW개발] - 젠킨스 파이프라인 ( Jenkin pipeline ) - 병렬로 Job 실행하기

 

젠킨스 파이프라인 ( Jenkin pipeline ) - 병렬로 Job 실행하기

Jenkins Pipeline Jenkins Pipeline Flugin 연속적인 이벤트 혹은, Job의 그룹을 실행시킬 수 있는 젠킨스 플러그인 파이프 라인의 통합 및 구현을 지원 Pipeline 전용 DSL을 통해, '코드'로서 기능을 정의 및 생..

bob-full.tistory.com

해당 글에 이어서 작성합니다.


젠킨스의 Job을 실행 할 때에, 동일한 스크립트를 환경에 맞춰, 다른 변수를 줘서 실행해야할 일이 생기게 됩니다,

(예를 들어, 회원 등급에 따른, 쿠폰 지급에서 -> A등급에는 3천원 쿠폰, B등급에는 5천원 쿠폰을 줘야 하는 경우, 같은 스크립트에서 A, B / 3000, 5000만 바꾸면 되는 경우입니다.)

이럴 경우에, 젠킨스에서는 Build parameter를 줄 수 있습니다.

일반적으로 , Build parameter 주는 법

* General tab에서, 매개변수를  정하고 값을 넣어주면 됩니다.

그렇다면, Pipeline에서는 어떻게 이 Parameter를 사용할까요?

 

Pipeline에서 Build parameter 이용하여, Job 실행하기

  • Blue Ocean UI로는 Job에 Parameter를 넣을 수가 없습니다. 따라서 직접 Jenkinsfile을 작성합니다
  • 해당 Pipeline은 전의 글과 마찬가지로, 3개의 Job(Build-test1,2,3)을 병렬 실행 후, Build-test-4를 실행한다고 가정합니다
  • Build-test-1 , Build-test-2, Build-test-3 Job에는 공통으로 쓰는 TEST parameter와 각각의 job에 쓰이는 TEST1,2,3 paramete가 있습니다.
pipeline {
    agent none
    parameters {
        string(name : 'TEST', defaultValue : '0', description : '')
        string(name : 'TEST1', defaultValue : '5', description : '')
        string(name : 'TEST2', defaultValue : '10', description : '')
    }
    stages{
        stage('Parallel Test') {
            parallel { 
                stage('Build-test-1') {
                    steps{ 
                        build job : 'Build-test-1', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST1', value : "${params.TEST1}")]
                    }
                }
                stage('Build-test-2') {
                    steps{ 
                        build job : 'Build-test-2', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST2', value : "${params.TEST2}")]
                    }
                }
                stage('Build-test-3') {
                    steps{ 
                        build job : 'Build-test-3', parameters: [ string(name: 'TEST', value: "${params.TEST}"), string(name : 'TEST3', value : "5")]
                    }
                }
            }
        }
        stage('Build-test-4') {
            steps{
                build 'Build-test-4'
            }
        }
    }
}
  • 4 ~  6 : Parameter 선언 → Jenkins 위에서 Parameter 선언과 동일하기 때문에, 굳이 코드 상에서 넣어주지 않아도 됨
  • 13, 18 : Build시에 parameter 넣기, params.* → build시에 동작, TEST1, TEST2
  • 23 : Build시, TEST(부모 job), TEST3(부모 job에 x) 에 값을 넣고 동작

* 그루비는 작은따옴표는 스트링만, 큰따옴표는 $기호로 동적 내용 넣을 수 있음(GString)  → https://starrykss.tistory.com/281 그루비 특유의 문법

해당 젠킨스 파일 작성 후

Build with parameters 를 눌러주신 후

해당 parameter의 값을 넣고, 빌드를 해주시면 됩니다.