Jenkinsfile - binding Parameters

2021. 3. 14. 01:34버전관리 및 빌드/Jenkins

Declarative Pipeline 에서 지원할 수 있는 environment 변수 타입이 String 뿐이므로,

아래의 스크립트에서 String.valueOf() 블럭을 생략할 수 있다.

 

pipeline {
    agent any
    stages {
        stage('dev [개발] 빌드') {
            steps {
                echo 'ready to build <DEV>'
                build job: 'CICD_Job',
                    wait: false, 
                    parameters: [
                        string(name: 'BUILD_TYPE',              value: String.valueOf('dev')),
                        string(name: 'DIST_SSH_SVR_TITLE',      value: String.valueOf('This is dev')),
                        string(name: 'DIST_SSH_SVR_IP',         value: String.valueOf('127.0.0.1')),
                        string(name: 'DIST_SSH_PUT_LOCATION',   value: String.valueOf('/application/dev/bin')),
                        
                        string(name: 'GIT_BRANCH',              value: String.valueOf('dev')),
                        string(name: 'FILE_NAME',               value: String.valueOf('myServDev.war')),
                        string(name: 'TARGET_WAR',              value: String.valueOf('"${env.WORKSPACE}/target/${params.FILE_NAME}"'))
                    ]

            }
        }
        stage('10초간 대기') {
            steps {
                sleep 10                
            }
        }
        stage('prod [운영] 빌드') {
            steps {
                echo 'ready to build <PROD>'
                build job: 'CICD_Job', 
                    wait: false, 
                    parameters: [
                        string(name: 'BUILD_TYPE',              value: String.valueOf('prod')),
                        string(name: 'DIST_SSH_SVR_TITLE',      value: String.valueOf('This is prod')),
                        string(name: 'DIST_SSH_SVR_IP',         value: String.valueOf('127.0.0.1')),
                        string(name: 'DIST_SSH_PUT_LOCATION',   value: String.valueOf('/application/prod/bin')),
                        
                        string(name: 'GIT_BRANCH',              value: String.valueOf('master')),
                        string(name: 'FILE_NAME',               value: String.valueOf('myServProd.war')),
                        string(name: 'TARGET_WAR',              value: String.valueOf('"${env.WORKSPACE}/target/${params.FILE_NAME}"'))
                    ]
            }
        }
    }
}