#jenkins #groovy #jenkins-plugins #jenkins-pipeline
#дженкинс #groovy #дженкинс-плагины #дженкинс-конвейер
Вопрос:
Мы используем конвейер Дженкинса для настройки заданий в jenkins. Для множества заданий нам нужен пользовательский ввод, для которого мы используем параметризованную сборку, где пользователь может вводить значения параметров, а позже мы используем значения в нашем файле .jenkins в sh, например
sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"
Раньше это работало с
- Дженкинс 2.16
- Конвейер 2.3
- Groovy 2.15
Однако, когда я перестраиваю Дженкинс в:
- 2.16 или последняя версия 2.26
- Конвейер 2.5
- Конвейер: Groovy 2.19
Вышеуказанное sh
перестало работать. Ошибка
groovy.lang.MissingPropertyException: No such property: accountnumber for class: groovy.lang.Binding
Есть идеи, чего мне не хватает? Синтаксис неправильный?
Для справки полный Jenkinsfile
для справки
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
git branch: '****', credentialsId: '***', url: '****'
stage 'Provision Volume'
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: '*****',
credentialsId: '****',
secretKeyVariable: '*****']]) {
// Run the terraform build
env.PATH = "${env.PATH}:/jenkins/terraform"
sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"
}
}
Комментарии:
1. Откуда вы ожидаете получить
accountnumber
,volumename
,vpcname
иsnapshotid
? Выполняется ли задание с правильными параметрами?2. Они задаются как параметры в задании, у этого задания есть параметры с этими именами. Таким образом, это происходит от пользовательского ввода и устанавливается.
3. Не могли бы вы, пожалуйста, поделиться определением этих параметров из этого файла Дженкинса?
Ответ №1:
Скопируйте и вставьте приведенный ниже код в узел сценария конвейера: {
stage ('BCCdlVsLib') {
build job: 'BCCdlVsLib', parameters:
[
[$class: 'StringParameterValue', name: 'BINPATH', value: 'BINPATH'],
[$class: 'StringParameterValue', name: 'SOURCEFILE', value: 'SOURCEFILE']
]
}
В заданиях (BCCdlVsLib) включите опцию «этот проект параметризован» и введите 2 строковых параметра job_binpath,job_sourcefile.
Выведите переменные в файле echo job_binpath для конвейерных заданий echo job_sourcefile
После запуска задания конвейера вы получите следующий результат. ИСХОДНЫЙ ФАЙЛ BINPATH