Jenkins pipeline通過參數批量拉起構建JOB

pipeline {
    agent {
        label 'Linux'
    }
    parameters {
        extendedChoice description: '請選擇構建環境', multiSelectDelimiter: ',', name: 'PROJECT_ENVS', propertyFile: '/data/jksconf/jkslist', propertyKey: 'envs', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_SINGLE_SELECT', visibleItemCount: 5
        extendedChoice description: '請選擇項目(可多選)', multiSelectDelimiter: ',', name: 'PROJECT_LIST', propertyFile: '/data/jksconf/prolist', propertyKey: 'projects', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX', visibleItemCount: 10
        string defaultValue: 'origin/master', description: '代碼分支', name: 'PROJECT_BRANCH', trim: true
        string defaultValue: '', description: '備註', name: 'PROJECT_NOTE', trim: true
    }
    environment {
        projects_envs =  "$params.PROJECT_ENVS"
        projects_list =  "$params.PROJECT_LIST"
        projects_branch =  "$params.PROJECT_BRANCH"
        projects_note =  "$params.PROJECT_NOTE"
    }

    stages {
        stage('執行上線') {
            steps {
                script {
                    input message: '確認是否上線?',ok: '確認上線'
                    for (item in projects_list.tokenize(',')){
                         echo "項目:" + item
                        item = build job: "${item}", propagate: false, wait: true, parameters: [
                          string(name:'project', value: "${projects_branch}"),
                          string(name:'envs', value: "${projects_envs}"),
                         ]
                        println item.getResult()
                    }
                    buildDescription  "測試環境:${projects_envs}<br>構建項目:${projects_list}<br>構建分支:${projects_branch}<br>構建備註:${projects_note}"
                }
            }
        }
    }
}

輸入參數說明:
projects_envs 構建的環境
projects_list 構建的JOB 多選
projects_branch 構建的代碼分支
projects_note 構建的備註



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