簡體   English   中英

jenkins 管道 - powershell 命令中的 groovy 和 powershell 變量

[英]jenkins pipeline - both of groovy and powershell variables in powershell command

我試圖在 jenkins 管道中使用 WORKSPACE 變量的值定義 powershell 變量。 有沒有辦法做到這一點?

stage ('BUILD') {
        steps {
            powershell ("""Write-Output ${WORKSPACE}\\One\\Two\\""")
            }
    }

輸出:

    [Pipeline] powershell
    18:18:15  C:\buildenv\Jenkins\workspace\project\One\Two\
    [Pipeline] }
    [Pipeline] // stage

那很好。 現在我需要將它包裝成變量:

stage ('BUILD') {
        steps {
            powershell ("""$name02=${WORKSPACE}\\One\\Two\\""")
            }
    }

現在輸出:

groovy.lang.MissingPropertyException: No such property: name02 for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:264)
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)
at WorkflowScript.run(WorkflowScript:50)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.delegateAndExecute(jar:file:/C:/buildenv/Jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:134)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executeSingleStage(jar:file:/C:/buildenv/Jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:679)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.catchRequiredContextForNode(jar:file:/C:/buildenv/Jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:414)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.catchRequiredContextForNode(jar:file:/C:/buildenv/Jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:412)
at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executeSingleStage(jar:file:/C:/buildenv/Jenkins/plugins/pipeline-model-definition/WEB-INF/lib/pipeline-model-definition.jar!/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy:678)
name02=''
pipeline {
    agent any

    stages{
        stage ('BUILD') {
            steps {
                script{
                    name2 = powershell label: '', returnStdout: true, script: "return \"${Workspace}\\One\\Two\\\""
                }
            }
        }
        stage ('Print') {
            steps {
                echo "name2 = ${name2}"
            }
        }         
    }
}
pipeline {
    agent any

    stages{
        stage ('BUILD') {
            steps {
                script{
                    powershell """
                        \$5name2 = "${Workspace}\\One\\Two\\"
                        Write-Output "name2 = \$5name2"
                    """
                }
            }
        }
    }
}
def result = powershell returnStdout: true, script: '''
                        $result = ${WORKSPACE}\\One\\Two\\
                        return $result 
                    '''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM