我的Jenkins CI / CD构建配置正在运行,直到我上次请求请求之前,我什么都没有改变,我需要再次使它运行。
Multibranch Pipeline被配置为从BitBucket SCM运行jenkinsfile
,但是现在失败,并出现以下错误;
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)
Script Security Plugin已安装,并且进程内脚本批准中没有列出要批准的内容。
Permissive Script Security Plugin已安装,jenkins.xml
已修改为包含用于运行-Dpermissive-script-security.enabled=true
的{{1}}标志。
这些是以前基于How can I disable security checks for Jenkins pipeline builds
实施和工作的作为测试,我创建了一个Pipeline作业,该作业允许启用和禁用Groovy Sandbox。这是使用以下简化版本的管道脚本配置的;
.war
如果我启用了#!groovy
pipeline {
agent any
environment {
VERSION = "${env.MAJOR_VERSION}.${env.MINOR_VERSION}"
BUILD_LABEL = "MyProject ${env.VERSION} Build #${env.BUILD_NUMBER}"
BUILD_SOURCESDIRECTORY = "${WORKSPACE}\\src"
}
options {
copyArtifactPermission('MyProject-Deploy')
buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5'))
}
parameters {
string (
defaultValue: '3',
description: 'MyProject Major Version',
name : 'MAJOR_VERSION')
string (
defaultValue: '7',
description: 'MyProject Minor Version',
name : 'MINOR_VERSION')
}
stages {
stage('Checkout Source') {
steps {
echo('checkout scm')
}
}
}
}
并运行了作业,则会遇到相同的错误;
Use Groovy Sandbox
如果我禁用Running in Durability level: MAX_SURVIVABILITY
[Pipeline] End of Pipeline
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)
,则管道脚本成功完成;
Use Groovy Sandbox
答案 0 :(得分:6)
尝试将Script Security插件从v1.45降级到v1.44,然后重新启动Jenkins。
尽管我没有使用Permissive Script Security插件,但在更新插件后自己碰到了这个问题。
答案 1 :(得分:2)
它在脚本安全插件的1.46版中已修复。