【问题标题】:groovy.lang.MissingPropertyException: No such property: CHANGE_authorgroovy.lang.MissingPropertyException:没有这样的属性:CHANGE_author
【发布时间】:2018-07-10 12:58:42
【问题描述】:

我收到以下错误,我的脚本如下所示

pipeline {
    agent any

    stages {
         stage('Build') {
            steps {
                echo 'I am building '+scm.branches[0].name+' branch.'
                sh "echo Shell ${CHANGE_author}"
                echo "echo Shell ${CHANGE_author}"
            }
        }
    }
}

以下是错误跟踪

groovy.lang.MissingPropertyException: No such property: CHANGE_author for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:242)
    at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:292)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:268)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
    at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)

根据链接中的文档专家 https://jenkins.io/doc/book/pipeline/syntax/

“更改请求” 如果当前构建是针对“更改请求”(也称为 GitHub 和 Bitbucket 上的拉取请求、GitLab 上的合并请求或 Gerrit 中的更改等),则执行该阶段。当没有传递参数时,阶段会在每个更改请求上运行,例如:when { changeRequest() }。 通过向更改请求添加带有参数的过滤器属性,可以使该阶段仅在匹配的更改请求上运行。可能的属性有 id、target、branch、fork、url、title、author、authorDisplayName 和 authorEmail。每一个都对应一个 CHANGE_ 环境变量,例如:when { changeRequest target: 'master' }。"*

所以我可以以 CHANGE_* 的形式访问环境变量,但它不起作用

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    如果你在你的 Jenkins 服务器中定义了环境变量 CHANGE_author,尝试使用 env.CHANGE_author 来访问它。例如:

        stage('Example1') {
           steps {
               script{
                    env.int_param1 = '2'
               }
           }
        }
        stage('Example2') {
             steps {
                 echo "${env.int_param1}"
             }
        }
    

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多