如何在环境中存储“复杂”变量?

时间:2020-10-14 10:33:38

标签: jenkins jenkins-pipeline jenkins-groovy

我有两个阶段,我想将信息对象及其属性共享给第二阶段

    stage("Enter deploy information") 
    {
        options 
        {
            timeout(time: 3, unit: 'MINUTES') 
        }
        steps 
        {
            script 
            {
                env.info = askForDeployInformation()
            }
        }
    }

    stage('Get artifact')
    {
        steps
        {
            customCopyArtifacts(env.info.BranchName, env.info.BuildNumber)
        }
    }

但这失败,并显示以下错误:

 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No such field found: field java.lang.String BranchName
11:56:44    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:425)
11:56:44    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:409)
11:56:44    at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:353)
11:56:44    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:357)
11:56:44    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
11:56:44    at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
11:56:44    at WorkflowScript.run(WorkflowScript:24)
11:56:44    at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.delegateAndExecute(ModelInterpreter.groovy:137)

如何在环境中存储“复杂”变量?

1 个答案:

答案 0 :(得分:0)

您不能在环境变量中存储复杂的对象。这适用于我所知道的所有操作系统。只能在其中存储字符串。您可以分配数字或布尔值:

env.VAR_1 = 12
env.VAR_2 = true

但是无论如何,它们都将转换为字符串(分别为"12""true")。