The docs mention the need for all data in steps to be serializable, but it doesn't mention that it somehow breaks Groovy maps in order to do.
If I run
def map = [foo: "bar", test: 'hello'] println 'Using Groovy version ' + GroovySystem.getVersion() println map map.each { k, v -> println "$k := $v" }
I will see the following when I run groovy locally:
Using Groovy version 1.8.9 [foo:bar, test:hello] foo := bar test := hello
However, I'll get this output from the Jenkins workflow plugin: (note that the each() iteration only shows the first element, and it is not a key/value pair
Using Groovy version 1.8.9 Running: Print Message {foo=bar, test=hello} Running: Print Message foo=bar := null
If this is expected behavior, it means users cannot use maps as expected, unless specifically passed to workflow classes that know how to read those parameters.
Am I doing something wrong here, or should the docs just be updated to reflect this?
- duplicates
-
JENKINS-26481 Mishandling of binary methods accepting Closure
- Resolved