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 構建的備註