Did you every find a solution or come to understand why its like this?

On Sunday, November 13, 2016 at 1:05:14 PM UTC-5, Jonathan Hodgson wrote:
>
> 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/787316c2-4c49-4dc7-9b2a-91e46e34ce79%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to