Ok, so having got my script working, I decided to move part of it into a shared library as per the section marked Define more structured DSL here
https://github.com/jenkinsci/workflow-cps-global-lib-plugin But I'm getting what to me seems like very odd behaviour with the variables. My primary jenkins code (on the server in the job configuration, not a jenkinsfile in this case), looks like this (after cutting it down to the minimum to test this phenomemon) @Library('mylibrary') echo buildparam_project.getClass().name echo buildparam_project def check = buildparam_project utils = new gforce.utigforce.patchreader() WpfCheckoutAndBuild { project = "${check} Project is ${buildparam_project}" } buildparam_project is a build parameter meanwhile, the file vars/WpfCheckoutAndBuild.groovy looks like this def call(body) { // evaluate the body block, and collect configuration into the object def buildparam = [:] body.resolveStrategy = Closure.DELEGATE_FIRST body.delegate = buildparam body() echo buildparam.project } The output I see, is [Pipeline] echo java.lang.String [Pipeline] echo MyProject [Pipeline] echo MyProject Project is null [Pipeline] End of Pipeline Finished: SUCCESS So buildparam_project can't be passed directly, I have to assign it to another variable first? I assume this is something going on under the hood that I don't know about, Groovy can be very odd and Groovy under CPS considerably more so. Could somebody explain it, and ideally give me a solution that doesn't require me to create copies of every build parameter (I'll do it if I have to, but it's messy)? -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/986a6368-c690-4751-a06a-2d5e2dffb4a6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
