'each' is currently broken in Workflow CPS scripts.

https://issues.jenkins-ci.org/browse/JENKINS-26481

On 09.02.2015, at 18:25, Brian Ray <be_...@sbcglobal.net> wrote:

> Hi Robin,
> 
> The simplest Groovy idiom for iterating over a collection is
> 
> hostnames.each { host ->
>   do something interesting with host ...
> }
> 
> 
> 
> Does this work?
> 
> Brian
> 
> On Monday, February 9, 2015 at 5:48:11 AM UTC-8, Robin Tegg wrote:
> Hi all,
> 
> I've been trying out the workflow plugin after watching the 
> pimp-your-continuous-delivery-pipeline-with-jenkins-workflow-wjax-14 demo. 
> And in one of the slides (24), there is an example of a for loop that looks 
> to iterate over a list of hostnames. I've assumed that hostnames is a list
> 
> def hostnames = ["192.168.0.1", "192.168.0.2"]
> for( def hostname: hostnames ) {
>     sh "ssh ${hostname} ..."
>   }
> 
> I'm wondering if anyone can help with my usage of arrays/lists. I'm getting 
> the following errors when I try the above:
> 
> java.io.NotSerializableException: java.util.AbstractList$Itr
> 
> Now I understand from the docs 
> (https://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.md#serialization-of-local-variables)
>  that some variables can't be serialized before a "sh" step might happen, but 
> as I'm new to groovy I'm struggling to understand how the above might be 
> achieved. I've tried in a method and inline as suggested.
> 
> The workaround I have at the moment is
> 
> def hostnames = ["192.168.0.1", "192.168.0.2"]
> for( int i = 0; i < hostnames.size(); i++) {
>   sh "ssh ${hostnames.get(i)} ..."
> }
> 
> Any pointers would be much appreciated
> 
> Thanks
> Robin
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-users/9dde8b3d-04a5-4644-96a0-2930f78c4978%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/97311FCD-01FE-4B01-B69B-2C6DFA148B5A%40beckweb.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to