Преобразование строки в карту в Groovy внутри конвейера Jenkins - PullRequest
0 голосов
/ 05 июля 2019

У меня есть параметр в конвейере Дженкинса, который выглядит как

PROPERTY1=1\nPROPERTY2=1

Следующий тестовый код работает, когда я тестировал на заводной площадке

def original = "PROPERTY1=1\nPROPERTY2=1"

def map = 
    original
    .split('\n')
    .collectEntries { entry ->
        def pair = entry.split('=')
        [(pair.first()):pair.last()]
    }

println(map)    
println("PROPERTY1: " + map.get("PROPERTY1"))
println("PROPERTY2: " + map.get("PROPERTY2"))

Я даже не могу разбить строку на новую строку в сценарии конвейера Jenkins

node {
    def ext_props = params.get('external_properties') ?: "PROPERTY1=0"
    println("ext_props: " + ext_props)
    println("Split String: " + ext_props.toString().split('\n').join(","))
    // def props = ext_props.split('\n').collectEntries { entry -> def pair = entry.split('='); [(pair.first()):pair.last()] }
    // println(props)
}

Вывод:

[Pipeline] {
[Pipeline] echo
ext_props: PROPERTY1=1\nPROPERTY2=1
[Pipeline] echo (hide)
Split String: PROPERTY1=1\nPROPERTY2=1
[Pipeline] } 

Чего мне не хватает?

1 Ответ

0 голосов
/ 05 июля 2019

Вы используете какую версию Jenkins?В моем окружении я мог видеть правильный вывод, как и ожидалось.

node {
    def ext_props = params.get('external_properties') ?: "PROPERTY1=0\nPROPERTY2=1"
    println("ext_props: " + ext_props)
    println("Split String: " + ext_props.toString().split('\n').join(","))
    // def props = ext_props.split('\n').collectEntries { entry -> def pair = entry.split('='); [(pair.first()):pair.last()] }
    // println(props)
}

Вывод я мог видеть следующим образом:

[Pipeline] {
[Pipeline] echo
ext_props: PROPERTY1=0
PROPERTY2=1
[Pipeline] echo
Split String: PROPERTY1=0,PROPERTY2=1
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
...