gpt4 book ai didi

jenkins-pipeline - Jenkins Multibranch Pipeline 失败,因为它在 Groovy Sandbox 中运行

转载 作者:行者123 更新时间:2023-12-04 17:15:14 25 4
gpt4 key购买 nike

我的 Jenkins CI/CD 构建配置正在运行,并且在我的最后一个拉取请求之前没有任何变化,我需要再次使其工作。

Multibranch Pipeline配置为运行 jenkinsfile来自 BitBucket SCM,但现在失败并出现以下错误;

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用于运行 .war 的标志.

这些是以前基于 How can I disable security checks for Jenkins pipeline builds 实现和工作的。

作为测试,我创建了一个管道作业,它允许启用和禁用 Groovy Sandbox。这是使用我的管道脚本的以下简化版本进行配置的;
#!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管道脚本成功完成;
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in C:\Jenkins-Workspace\Pipeline-Test
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout Source)
[Pipeline] echo
checkout scm
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
  • 我如何确保我有一个干净的 Jenkins 配置?
  • 我应该尝试从 v2.121.3 降级 Jenkins 吗?
  • 最佳答案

    尝试将 Script Security 插件从 v1.45 降级到 v1.44 并重新启动 Jenkins。

    虽然我没有使用 Permissive Script Security 插件,但我在更新插件后就遇到了这个问题。

    关于jenkins-pipeline - Jenkins Multibranch Pipeline 失败,因为它在 Groovy Sandbox 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52177946/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com