2017-06-20 154 views
0

现在用这个脚本完成了上百次构建。詹金斯更新后,groovy脚本不再运行。它甚至没有进入第一阶段。我能看到的错误是误导我的,因为'脚本'是我的案例中的文件夹名称。可以肯定,如果一切都很好,我的再生与内置语法管道发电机的詹金斯dir命令,我得到了:Jenkins更新后2.6 - > 2.66 groovy脚本停止工作

dir('Scripts\\CD\\stage_1') { 
// some block 
} 

对于路径Scripts\CD\stage_1

错误是说下面

groovy.lang.MissingPropertyException: No such property: Scripts for class: groovy.lang.Binding 
at groovy.lang.Binding.getVariable(Binding.java:63) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224) 
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241) 
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238) 
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28) 
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20) 
at WorkflowScript.run(WorkflowScript:1) 
at ___cps.transform___(Native Method) 
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74) 
at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30) 
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:66) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
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:83) 
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:173) 
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:162) 
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122) 
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261) 
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:162) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:35) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:32) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:32) 
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:330) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:242) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:230) 
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) 
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

对于我的代码

#!groovy 

node { 

String step 

currentBuild.result = "SUCCESS" 

checkout scm 

sh "git rev-parse --short HEAD > .git/commit-id" 
commit_id = readFile('.git/commit-id') 

try { 

stage 'Wait for running build' 
dir('Scripts\\CD\\stage_1') { 

     sh "./waitForRunningBuild" 

} 

除了从更新2.6到2.66我也更新了所有插件到最新版本并禁用了CLI remote-smth(但它是通过ssh进行远程访问的,而不是运行我猜的本地命令)。

我不知道这个错误是什么意思,因为脚本名称是文件夹名称,里面没有其他的Script名称。

回答

0

它发生multibranch插件与詹金斯文件内的链接有问题。当我用groovy脚本写Jenkins文件内容时,它开始走得更远。

ci同样的问题,而不是OD Scripts在这里报道 - https://issues.jenkins-ci.org/browse/JENKINS-42830