On Saturday, February 7, 2015 at 2:46:12 AM UTC-5, Baptiste Mathus wrote: > > Hi, > As the inline documentation (see the question marks on the right), this is > because your code runs in sandboxed mode/you're not an admin: > if *Use Groovy Sandbox* is checked, or you are not an administrator, not > all APIs will be available. >
Based on the question mark description of the Script path element when "Groovy CPS DSL from SCM" is selected, the selected Groovy script is always run inside a sandbox. The description says: Relative location within the checkout of your Workflow script. Note that it will always be run inside a Groovy sandbox. Why is there a limitation for this option? > > (Though I somehow agree that at first sight StringBuilder could be > whitelisted). > OK. > > About sharing libraries, I guess this doc could help: > https://github.com/jenkinsci/workflow-plugin/blob/master/cps-global-lib/README.md > Thanks for link. It's not clear to me how I can reuse the logic across multiple jobs. The description says "This plugin adds that functionality by creating a "shared library script" Git repository inside Jenkins. Every workflow script in your Jenkins see these shared library scripts in their classpath." but where do I configure that? > > HTH > > 2015-02-06 21:01 GMT+01:00 Benjamin Muschko <[email protected] > <javascript:>>: > >> Hi, >> >> I was wondering what the technical limitations are for a workflow Groovy >> script, more specifically: >> >> 1) Is is possible to use classes like StringBuilder? >> >> Example: >> >> stage 'tryout' >> node { >> useStringBuilder() >> } >> >> def useStringBuilder() { >> echo "Before usage" >> StringBuilder test = new StringBuilder() >> echo "After usage" >> } >> >> If I use this method my in my flow.groovy script, the job never seems to >> print out "After usage". Instead I get the message: >> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: >> Scripts not permitted to use new java.lang.StringBuilder". Are "restricted" >> classes documented somewhere? Why is there a restriction? >> >> 2) Can you define your own classes within the Groovy script? >> >> stage 'tryout' >> node { >> new HelloWorld().printMessage() >> } >> >> class HelloWorld { >> def printMessage() { >> echo "Hello World" >> } >> } >> >> If I create an instance of a custom class, I get the following message: >> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: >> Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod >> java.lang.String java.lang.Object". >> >> 3) Is there a way to reuse methods or classes across multiple jobs? How >> do you envision reusable code? >> >> In all of these cases, I'd like to consume an existing, checked-in Groovy >> script via "Groovy CPS DSL from SCM". >> >> Thanks, >> >> Ben >> >> -- >> 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] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-users/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jenkinsci-users/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Baptiste <Batmat> MATHUS - http://batmat.net > Sauvez un arbre, > Mangez un castor ! > -- 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/d9669a48-8eac-4765-8f94-9bdd226d35ff%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
