>From the error message, it seems "dir" requires a block containing the 
>commands to run in the specified directory. Try something like

dir ('foobar') {
   sh 'pwd'
}

On 15.08.2014, at 19:02, James Nord (jnord) <[email protected]> wrote:

> Hi all,
>  
> There seems to be an issue with the workflow "Change Directory" step (or 
> me...)
>  
> With the following workflow
> node() {
>   sh 'rm -fr -- *'
>   sh 'mkdir foobar'
>   echo 'about to change dir'
>   dir 'foobar'
>   echo 'changed dir'
> }
>  
> I get the following output
>  
> Running: Allocate node : Start
> Running on master in /opt/jenkins/data/jobs/changedir/workspace
> Running: Allocate node : Body : Start
> Running: Shell Script
> [workspace] $ nohup sh -c 
> "'/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/script.sh' > 
> '/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/jenkins-log.txt' 2>&1; 
> echo $? > 
> '/opt/jenkins/data/jobs/changedir/workspace/.8e7bf62b/jenkins-result.txt'"
> + rm -fr -- '*'
> Running: Shell Script
> [workspace] $ nohup sh -c 
> "'/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/script.sh' > 
> '/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/jenkins-log.txt' 2>&1; 
> echo $? > 
> '/opt/jenkins/data/jobs/changedir/workspace/.22ea1fbb/jenkins-result.txt'"
> + mkdir foobar
> Running: Print Message
> about to change dir
> Running: Change Directory
> Running in /opt/jenkins/data/jobs/changedir/workspace/foobar
> Running: Allocate node : Body : End
> Running: Allocate node : End
> Running: End of Workflow
> java.lang.IllegalStateException: There's no body to invoke
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsStepContext.invokeBodyLater(CpsStepContext.java:226)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsStepContext.invokeBodyLater(CpsStepContext.java:217)
>   at 
> org.jenkinsci.plugins.workflow.steps.PushdStep$Execution.start(PushdStep.java:77)
>   at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:131)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:79)
>   at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
>   at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
>   at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
>   at 
> com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15)
>   at Script1.run(Script1.groovy:5)
>   at Unknown.Unknown(Unknown)
>   at ___cps.transform___(Native Method)
>   at 
> com.cloudbees.groovy.cps.impl.ContinuationGroup$1.call(ContinuationGroup.java:66)
>   at 
> com.cloudbees.groovy.cps.impl.ContinuationGroup$1.call(ContinuationGroup.java:62)
>   at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1079)
>   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
>   at 
> org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:44)
>   at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
>   at 
> com.cloudbees.groovy.cps.CategorySupport$_use_closure1.doCall(CategorySupport.groovy:15)
>   at sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>   at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
>   at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
>   at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
>   at 
> com.cloudbees.groovy.cps.CategorySupport$_use_closure1.doCall(CategorySupport.groovy)
>   at sun.reflect.GeneratedMethodAccessor364.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>   at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
>   at groovy.lang.Closure.call(Closure.java:415)
>   at groovy.lang.Closure.call(Closure.java:409)
>   at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:106)
>   at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$400(GroovyCategorySupport.java:64)
>   at 
> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:246)
>   at org.codehaus.groovy.runtime.GroovyCategorySupport$use.call(Unknown 
> Source)
>   at com.cloudbees.groovy.cps.CategorySupport.use(CategorySupport.groovy:14)
>   at 
> com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:62)
>   at 
> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:100)
>   at 
> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:76)
>   at sun.reflect.GeneratedMethodAccessor290.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at 
> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
>   at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
>   at com.cloudbees.groovy.cps.Next.step(Next.java:53)
>   at com.cloudbees.groovy.cps.Next.run(Next.java:44)
>   at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:109)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:155)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:252)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:68)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:168)
>   at 
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:166)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at java.lang.Thread.run(Thread.java:745)
> Finished: FAILURE
>  
> I'm not entirely sure what's wrong here..
>  
> /James
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to