Problem looping through the result of findFiles. The result from this method returns a org.jenkinsci.plugins.pipeline.utility.steps.fs.FileWrapper
node { stage("Publish") { def files = findFiles(glob: '**/*.rpm') for (def file : files) { sh "echo Hello World! ${file.path}" } } Fails with java.io.NotSerializableException: java.util.AbstractList$Itr Trying to use @NonCPS node { stage("Publish") { def files = findFiles(glob: '**/*.rpm') loopFiles(files) } } @NonCPS void loopFiles(files) { for (def file : files) { sh "echo Hello World! ${file.path}" } } It breaks the loop after first item in list. If 3 files found, then there is only one output. However, if I remove the shell script and just use println it loops through all 3 files found. Works if I loop the files first and put the file path in a new list: node { stage("Publish") { def files = findFiles(glob: '**/*.rpm') def packages = [] for (def file : files) { packages.add(file.path) } for (def packagePath : packages) { sh "echo Hello World! ${packagePath}" } } I reckon that FileWrapper is not serializable, hence the problem, but why doesn't the @NonCPS work on all items? -- 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/4efcd7bb-a706-42b0-a7b8-88fdd1434783%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.