1

我在 Jenkins 上创建了一个基本的声明性管道。当我运行构建时,它会吐出以下错误

groovy.lang.MissingPropertyException: No such property: pipeline for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:130)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
    at WorkflowScript.run(WorkflowScript:2)
    at ___cps.transform___(Native Method)

Jenkins 服务器使用最新版本的默认插件设置为默认值。Jenkinsfile 如下所示

pipeline {
  agent any

   stages {
      stage('Sample Stage') {
          steps {
              sh '''
                ls
              '''
          }
      }
   }
}

当 Jenkins 读取 Jenkinsfile 时,该块似乎pipeline失败了,这在 Jenkinsfile 中相当令人困惑,对我来说看起来不错。

4

2 回答 2

2

似乎 Script Security Plugin 1.45 破坏了所有管道代码

于 2018-09-05T23:25:50.840 回答
1

发生这种情况是因为您在沙盒模式下运行脚本。管道之类的功能不会在那里发布。在脚本安全插件的 1.44 版之前,它已脱离沙盒。

如果您希望运行单分支管道 - 只需取消标记作业设置页面底部的“使用 Groovy Sandbox”。如果您使用的是多分支管道,那么您可能唯一的方法就是降级插件。

于 2018-09-05T12:53:32.227 回答