Jenkins Pipeline通過IF判斷是否執行

pipeline {
    agent {
        label 'Linux'
    }
    parameters {
        extendedChoice description: '請選擇構建環境', multiSelectDelimiter: ',', name: 'envs', propertyFile: '/data/jksconf/jkslist', propertyKey: 'envs', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_SINGLE_SELECT', visibleItemCount: 5
        gitParameter branch: '', branchFilter: '.*', defaultValue: 'origin/master', description: '代碼分支', name: 'project', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH_TAG'
        booleanParam defaultValue: false, description: '是否開啓代碼掃描', name: 'SONAR_SCAN'
    }
    environment {
        sonar_scan =  "$params.SONAR_SCAN"
    }

    stages {
        stage('Checkout Code') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '${project}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'e152b36f-b12a-4bef-a9d8-22222222', url: 'ssh://[email protected]/abc/demo']]])
            }
        }
        stage('代碼掃描'){
             steps {
                 script {
                    def scannerHome = tool 'sonar-scanner-4.5.0.2216';
                    if ( sonar_scan == 'true' ) {
                        withSonarQubeEnv('SonarQube') {
                            sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.language=PHP -Dsonar.sources=. -Dsonar.sourceEncoding=utf8"
                        }
                    }
                 }
            }
        }
        stage('同步站點'){
            steps {
                sh label: '', script: '''
                                    sh deploy.sh ${envs} ${project}
                '''
                script {
                    FUNT = sh(returnStdout: true, script: "echo ${envs}")
                    PROJ = sh(returnStdout: true, script: "echo ${project}}")
                    buildDescription  "構建分支:[${FUNT}]-[${PROJ}]"
                }

            }
        }
    }
    post {
        always {
            echo 'One way or another, I have finished'
            deleteDir() /* clean up our workspace */
        }
        success {
            echo 'I succeeeded!'
        }
        unstable {
            echo 'I am unstable :/'
        }
        failure {
            echo 'I failed :('
        }
        changed {
            echo 'Things were different before...'
        }
    }
}

通過sonar_scan這個參數判斷,是否執行代碼掃描

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章