Closing the loop on this in case it helps out someone else.  This is not 
currently possible.  See JENKINS-42224 
<https://issues.jenkins-ci.org/browse/JENKINS-42224> for more info.

Thanks Andrew Bayer for letting me know.

On Wednesday, March 8, 2017 at 3:11:31 PM UTC-5, Tim Downey wrote:
>
> Hi,
>
> Is it possible to run a pipeline model definition job from within a shared 
> global library?  I'm trying to take the whole pipeline model and extract it 
> into a simple shared lib.  I'm trying to take something like this:
>
>
> https://github.com/jenkins-infra/pipeline-library/blob/master/vars/buildPlugin.groovy
>
> But use the actual pipeline model definition inside.  The linked example 
> above is using base pipeline behavior, not the more idiomatic pipeline 
> model version.  I'm trying to do this to produce a common, simple 
> Jenkinsfile across many components that all have the exact same build.  I'm 
> trying to abstract it into a buildComponent.groovy so that my Jenkinsfile 
> for an individual build just has:
>
>
> buildComponent()
>
> To demonstrate, I've simplified buildComponent.groovy down to barebones.
>
> #!/usr/bin/env groovy
>
>
> def call(Map params = [:]) {
>
>     def task = {
>         pipeline {
>             stages {
>                 stage('do-something') {
>                     steps {
>                         echo "do something"
>                     }
>                 }
>             }
>         }
>     }
>
>     task()
> }
>
> When I try and build a Jenkinsfile using buildComponent(), I get this for 
> an error:
>
> [Pipeline] End of Pipeline[Bitbucket] Notifying pull request build result
> [Bitbucket] Build result notified
> java.lang.NullPointerException: Cannot get property 'stages' on null object
>       at 
> org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60)
>       at 
> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:172)
>       at 
> org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:47)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)
>       at 
> org.jenkinsci.plugins.pipeline.modeldefinition.Utils.attachDeclarativeActions(Utils.groovy:198)
>       at 
> org.jenkinsci.plugins.pipeline.modeldefinition.Utils$attachDeclarativeActions$7.call(Unknown
>  Source)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
>       at 
> com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:18)
>       at 
> org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.call(jar:file:/var/jenkins_home/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:65)
>       at 
> buildAngularComponent.call(/var/jenkins_home/jobs/angularui/jobs/van-angularui-affix/branches/PR-7/builds/13/libs/vantage-global-pipeline-libs/vars/buildAngularComponent.groovy:7)
>       at 
> buildAngularComponent.call(/var/jenkins_home/jobs/angularui/jobs/van-angularui-affix/branches/PR-7/builds/13/libs/vantage-global-pipeline-libs/vars/buildAngularComponent.groovy:18)
>       at WorkflowScript.run(WorkflowScript:2)
>
>
> Am I trying to do something that is not currently possible?  I admit that 
> I'm confused by the levels of indirection going on.
>
> Thanks,
> Tim
>
>

-- 
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/832af430-3471-403a-8b4b-d1246b9cc8e6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to