Параметр конвейера Дженкинса для хранения массива - PullRequest
1 голос
/ 28 февраля 2020

У меня два конвейера говорят - CallingPipeline и CalledPipeline, где CallingPipeline вызывает CalledPipeline (нисходящий конвейер)

В CallingPipeline я создаю массив и хочу передать его до CalledPipeline. Для этого мне нужно создать параметр в CalledPipeline, но я не смог найти параметр, который содержит массив. Не могли бы вы предложить, какой параметр будет содержать массив?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Что если вы просто присоединитесь () и сделаете его строкой с разделителями, а затем разделите () / переформируете ее обратно в список / массив в CalledPipeline?

Все параметры jenkins сводятся к String или Boolean afaik

0 голосов
/ 29 февраля 2020

Использовать строковый параметр. Сериализуйте ваши данные в CallingPipeline и десериализуйте их в CalledPipeline. Это простая задача с использованием Groovy классов JsonOutput и JsonSlurper. По сравнению с простым соединением / разделением этот подход может использоваться даже для более сложных данных (например, вложенных объектов).

CallingPipeline

import groovy.json.JsonOutput

node {
    stage('test') {
        def myArray = [ 42, 'bar', 'baz' ]

        build job: 'CalledPipeline', parameters: [
            string(name: 'myParam', value: JsonOutput.toJson( myArray ) )
        ]
    }
}

CalledPipeline

import groovy.json.JsonSlurper

node {
    stage('test') {
        echo "myParam: $myParam"

        def myParamObject = new JsonSlurper().parseText( myParam )
        for( def elem in myParamObject ) {
            echo "$elem"
        }
    }
}

Вывод:

myParam: [42,"bar","baz"]
42
bar
baz
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...