Подтвердить что ты не робот

Параметры пропускной способности трубопровода для последующих работ

Я использую 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

Как я могу решить эту ошибку при печати? Или еще лучше, есть ли менее громоздкий способ, с помощью которого я могу просто передать ВСЕ параметры трубопровода в следующую работу.

4b9b3361

Ответ 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