Jenkins管道布尔参数评估

sga*_*gel 2 groovy boolean jenkins jenkins-pipeline

我有一个詹金斯管道,应该评估一个名为的布尔参数saveEar

stage ('Publish to CIFS'){
  echo String.valueOf(saveEar)
  if ( saveEar ) {
    cifsPublisher alwaysPublishFromMaster: false, continueOnError: false, failOnError: false, publishers: [[
      configName: 'MY-CONFIG', transfers: [[
        cleanRemote: false, 
        excludes: '', 
        flatten: false, 
        makeEmptyDirs: false, 
        noDefaultExcludes: false, 
        patternSeparator: '[, ]+', 
        remoteDirectory: "jenkins-job_" + '$JOB_NAME' + '$BUILD_NUMBER', 
        remoteDirectorySDF: false, 
        removePrefix: 'build/libs', 
        sourceFiles: 'build/libs/my.ear']], 
      usePromotionTimestamp: false, 
      useWorkspaceInPromotion: false, 
      verbose: true
    ]]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是参数配置:

    <hudson.model.BooleanParameterDefinition>
      <name>saveEar</name>
      <description>valore per scegliere se salvare l&apos;EAR generato su XXXX (true =&gt; salva, default false)</description>
      <defaultValue>false</defaultValue>
    </hudson.model.BooleanParameterDefinition>
Run Code Online (Sandbox Code Playgroud)

我期待,当saveEarfalse詹金斯不会超过CIFS发布,但事实并非如此。

这是管道日志:

[Pipeline] stage
[Pipeline] { (Publish to CIFS)
[Pipeline] echo
false
[Pipeline] cifsPublisher
CIFS: Connecting from host [jenkins.mydomain]
CIFS: Connecting with configuration [MY-CONFIG] ...
CIFS: Removing WINS from name resolution
CIFS: Setting response timeout [30.000]
CIFS: Setting socket timeout [35.000]
<...>
CIFS: Transferred 1 file(s)
[Pipeline] }
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助澄清这个问题吗?

dot*_*dot 6

要在管道阶段内访问参数,请使用params.variableName。在您的情况下,您应该使用params.saveEar访问值。