Параметры пропускной способности трубопровода для последующих работ
Я использую Jenkins v2.1 с интегрированной функцией конвейера доставки (https://jenkins.io/solutions/pipeline/) для организации двух существующих сборок (сборка и развертывание).
В моей параметризованной сборке у меня есть 3 пользовательских параметра, которые также необходимо выбрать в конвейере.
Конвейер script выглядит следующим образом:
node: {
stage 'build'
build job: 'build', parameters: [[$class: 'StringParameterValue', name: 'target', value: target], [$class: 'ListSubversionTagsParameterValue', name: 'release', tag: release], [$class: 'BooleanParameterValue', name: 'update_composer', value: update_composer]]
stage 'deploy'
build job: 'deploy', parameters: [[$class: 'StringParameterValue', name: 'target', value: target]]
}
Это работает правильно, за исключением BooleanParameterValue
. Когда я строю конвейер, выдается следующая ошибка:
java.lang.ClassCastException: hudson.model.BooleanParameterValue.value expects boolean but received class java.lang.String
Как я могу решить эту ошибку при печати?
Или еще лучше, есть ли менее громоздкий способ, с помощью которого я могу просто передать ВСЕ параметры трубопровода в следующую работу.
Ответы
Ответ 1
Полагая
value: update_composer
возникла проблема, попробуйте
value: Boolean.valueOf(update_composer)
существует менее громоздкий способ, с помощью которого я могу просто передать ВСЕ параметры конвейера в работу ниже по течению
Не то, что я знаю, по крайней мере, не без использования вызовов Jenkins API и отключения изолированной программной среды Groovy.
Ответ 2
В дополнение к Jesse Glick ответьте, если вы хотите передать строковый параметр, используйте:
build job: 'your-job-name',
parameters: [
string(name: 'passed_build_number_param', value: String.valueOf(BUILD_NUMBER)),
string(name: 'complex_param', value: 'prefix-' + String.valueOf(BUILD_NUMBER))
]
Ответ 3
как Jesse Джесси Глик и abguy сказал, что вы можете перечислить строку в булевский тип:
Boolean.valueOf(string_variable)
или противоположное значение Boolean в строку:
String.valueOf(boolean_variable)
в моем случае мне пришлось переходить к Boolean параметру на другое задание.
Поэтому для этого вам понадобится класс BooleanParameterValue:
build job: 'downstream_job_name', parameters:
[
[$class: 'BooleanParameterValue', name: 'parameter_name', value: false],
], wait: true