2016-09-01 4 views
0

У меня есть труба дженкинса, которая будет вызвана нетехническим человеком, и технический специалист одобрит или отклонит эту сборку. Итак, моя проблема заключается в том, что технический специалист должен изменить/заполнить некоторые параметры, которые пусты (нетехнический человек не может знать или забыть войти).Можно ли проверить и изменить параметры в трубе дженкинсов?

stage 'Waiting Approval' 
currentBuild.displayName = "Waiting for Approvel:" + name 
timeout(time: 5, unit: 'DAYS') 
     { 
      input message: "Do you approve creating new user("+ name +")?", ok: 'Approve', submitter: 'Bilisim' 
     } 

// ########### STEP For Checking Missing or Wrong Parameters & Correct Them !!!! ############## 
node('domainController') { 
    stage 'Create New User' 
    currentBuild.displayName = "Creating AD User:"+name 
    build job: 'Create New AD User', parameters: [string(name: 'groups', value: groups), string(name: 'emailAdd', value: emailAdd), string(name: 'name', value: name), string(name: 'surname', value: surname), string(name: 'title', value: title), string(name: 'department', value: department), string(name: 'manager', value: manager), string(name: 'company', value: company), string(name: 'streetAdd', value: streetAdd), string(name: 'city', value: city), string(name: 'state', value: state), string(name: 'country', value: country), string(name: 'pcode', value: pcode), booleanParam(name: 'sendMail', value: sendMail.toBoolean()), booleanParam(name: 'details', value: details.toBoolean()), string(name: 'ou', value: ou)] 
    currentBuild.displayName = "Finished Creating User:" + name 
} 

ответ

0

Параметры трубопроводов Jenkins передаются в ваш трубопровод как переменные, поэтому вы можете обновить значение переменной. Я не думаю, что вы действительно можете «изменить» параметр в представлении сборки, но вы можете ждать ввода технического персонала и, при необходимости, заменить нетехнические параметры человека.

Пример:

stage "Stage 1" 
echo "Non-technical person parameter : ${name}" 

stage "Waiting approval" 
timeout(time: 5, unit: 'DAYS') { 
    def technicalApprovedUser = input id: 'input_approved_name' message: "Do you approve creating new user("+ name +")?", ok: 'Approve', submitter: 'Bilisim', parameters: [[$class: 'StringParameterDefinition', defaultValue: "${name}", description: '', name: 'User Name']] 
} 

stage 'Create New User' 
currentBuild.displayName = "Creating AD User:"+technicalApprovedUser 
build job: 'Create New AD User', parameters: [string(name: 'groups', value: groups), string(name: 'emailAdd', value: emailAdd), string(name: 'name', value: technicalApprovedUser), string(name: 'surname', value: surname), string(name: 'title', value: title), string(name: 'department', value: department), string(name: 'manager', value: manager), string(name: 'company', value: company), string(name: 'streetAdd', value: streetAdd), string(name: 'city', value: city), string(name: 'state', value: state), string(name: 'country', value: country), string(name: 'pcode', value: pcode), booleanParam(name: 'sendMail', value: sendMail.toBoolean()), booleanParam(name: 'details', value: details.toBoolean()), string(name: 'ou', value: ou)] 
currentBuild.displayName = "Finistère Creating User:" + technicalApprovedUser