Using global variables in Jenkins Pipeline

后端 未结 3 417
长发绾君心
长发绾君心 2020-12-30 23:16

I have tried all sort of ways but nothing seems to be working. Here is my jenkinsfile.

def ZIP_NODE
def CODE_VERSION
pipeline{
    /*A declarative pipeline*/         


        
3条回答
  •  天涯浪人
    2020-12-30 23:39

    Try following and see how it goes:

    def ZIP_NODE
    def CODE_VERSION
    pipeline{
        /*A declarative pipeline*/
    
        agent {
            /*Agent section*/ 
            // where would you like to run the code 
            label 'master' 
            }
        options{
            timestamps()
            }
        parameters {
            choice(choices: ['dev'], description: 'Name of the environment', name: 'ENV')
            choice(choices: ['us-east-1', 'us-west-1','us-west-2','us-east-2','ap-south-1'], description: 'What AWS region?', name: 'AWS_DEFAULT_REGION')
            string(defaultValue: "", description: '', name: 'APP_VERSION')
    
            }
        stages{
            /*stages section*/
            stage('Initialize the variables') {
                // Each stage is made up of steps
                steps{
                    script{
                        CODE_VERSION="${BUILD_NUMBER}-${ENV}"
                        ZIP_NODE="abcdefgh-0.0.${CODE_VERSION}.zip"
                    }
                }                
            }
            stage ('code - Checkout') {
                steps{
                    println "checkout skipped"
                    //checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx', url: 'http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.git']]]) 
                }  
            }
    
            stage ('code - Build'){
                steps{
                    sh "echo ${JOB_NAME} && pwd && echo ${ZIP_NODE} && echo 'remove alraedy existing zip files' && rm -rf *.zip && zip -r ${ZIP_NODE} . && chmod 777 $ZIP_NODE"
                }
            }
            stage('Deploy on Beanstalk'){
                steps{
                    println "build job skipped"
                    //build job: 'abcdefgh-PHASER' , parameters: [[$class: 'StringParameterValue', name: 'vpc', value: ENV], [$class: 'StringParameterValue', name: 'ZIP_NODE', value: ZIP_NODE], [$class: 'StringParameterValue', name: 'CODE_VERSION', value: CODE_VERSION], [$class: 'StringParameterValue', name: 'APP_VERSION', value: BUILD_NUMBER], [$class: 'StringParameterValue', name: 'AWS_DEFAULT_REGION', value: AWS_DEFAULT_REGION], [$class: 'StringParameterValue', name: 'ParentJobName', value: JOB_NAME]]
                }
            }
        } 
    }
    

    I got following output:

    Started by user jenkins
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] node
    Running on Jenkins in /Users/Shared/Jenkins/Home/workspace/test
    [Pipeline] {
    [Pipeline] timestamps
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Initialize the variables)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (code - Checkout)
    [Pipeline] echo
    21:19:06 checkout skipped
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (code - Build)
    [Pipeline] sh
    21:19:06 [test] Running shell script
    21:19:06 + echo test
    21:19:06 test
    21:19:06 + pwd
    21:19:06 /Users/Shared/Jenkins/Home/workspace/test
    21:19:06 + echo abcdefgh-0.0.17-dev.zip
    21:19:06 abcdefgh-0.0.17-dev.zip
    21:19:06 + echo 'remove alraedy existing zip files'
    21:19:06 remove alraedy existing zip files
    21:19:06 + rm -rf '*.zip'
    21:19:06 + zip -r abcdefgh-0.0.17-dev.zip .
    21:19:06 
    21:19:06 zip error: Nothing to do! (try: zip -r abcdefgh-0.0.17-dev.zip . -i .)
    [Pipeline] }
    [Pipeline] // stage
    

提交回复
热议问题