2016-12-22 44 views
1

我試圖在管道腳本中使用作業參數,跟在Parametrized pipeline using template documentation之後。如何訪問Jenkins管道腳本中的參數?

我的腳本:

node { 
    // Display the parameter value of the parameter name "myparam" 
    println myparam 
    sh "echo '${myparam}'" 
} 

但詹金斯找不到我的參數:

groovy.lang.MissingPropertyException: No such property: myparam for class: WorkflowScript 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:458) 
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:33) 
    at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20) 
    at WorkflowScript.run(WorkflowScript:3) 
    at ___cps.transform___(Native Method) 

我缺少什麼?

詹金斯版本:2.8

我的全作業XML看起來是這樣的:

<flow-definition plugin="[email protected]"> 
    <actions /> 
    <description /> 
    <keepDependencies>false</keepDependencies> 
    <properties> 
     <com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="[email protected]" /> 
     <hudson.model.ParametersDefinitionProperty> 
     <parameterDefinitions> 
      <hudson.model.StringParameterDefinition> 
       <name>myparam</name> 
       <description>bar</description> 
       <defaultValue>foo</defaultValue> 
      </hudson.model.StringParameterDefinition> 
     </parameterDefinitions> 
     </hudson.model.ParametersDefinitionProperty> 
    </properties> 
    <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="[email protected]"> 
     <script>node { //Dislay the parameter value of the parameter name "myparam" println myparam sh "echo '${myparam}'" }</script> 
     <sandbox>false</sandbox> 
    </definition> 
    <triggers /> 
</flow-definition> 
+3

嘗試訪問它 – izzekil

回答

4

首先定義您的自定義生成參數:

pipeline { 
    parameters { 
    string(name: 'BuildConfiguration', 
      defaultValue: 'Release', 
      description: 'Configuration to build (Debug/Release/...)') 
    } 

它會自動在頁面顯示出來之後顯示您從Jenkins作業頁面單擊「使用參數生成」。

然後訪問該變量在腳本中:像這樣的'params.myparam`

echo "Building configuration: ${params.BuildConfiguration}" 
echo "Building configuration: " + params.BuildConfiguration 
+1

也請看看https://issues.jenkins-ci.org/browse/JENKINS -40574 –

相關問題