Here's the hack. The example assumes I don't need the files as such in the
main workflow, just the contents:
def planNumberOne
node('planners') {
// ...
// slurp up the file and pass it "outside" the block
planNumberOne = readFile 'plans/plan_1'
}
// Lo and behold, the override sticks back out here in the main flow.
// This variable is not null, it has the contents of plans/plan_1 and
// the echo displays them.
echo planNumberOne
I did not expect it to work nor understand why it works. I knew you could
pass an outer workflow variable into the *node* block but thought this was
a one-way street. Ie that the block could see the value and possibly
override it, but that the workflow would retain the original value.
On Friday, October 30, 2015 at 9:40:02 AM UTC-7, Brian Ray wrote:
>
> The *unstash *step outside of a *node *block is illegal, because it wants
> a workspace to unstash to:
>
> node('planners') {
>
> // ...
> // do a bunch of stuff then stash the product
> stash( name: 'plans', includes: 'plans/*' )
>
> }
>
> // this is unwrapped and will throw a MissingContextVariableException
> unstash 'plans'
>
> Is there a hack to *unstash *files out into the main workflow, or an
> equivalent that doesn't use *stash *and *unstash*? I'm attempting to
> offload some of the planning and preparation for downstream flow logic into
> the *planners *pool at the top of the flow. The main workflow would then
> use that output to split out chunks of work via *parallel*.
>
--
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/dde23bec-7be9-41fc-a652-09ec55227d35%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.