Jenkins声明性管道中的版本号插件

问题描述 投票:2回答:1

我正在尝试使用版本号插件来格式化我们的包的版本号。由于某种原因,版本变量的放置不起作用,当我回应以下内容时,我只获得内部版本号,例如:“... 54”

    def Version_Major = '1'
    def Version_Minor  = '0'
    def Version_Patch  = '0'

    pipeline {  
        environment {
          VERSION = VersionNumber([
              versionNumberString: '${Version_Major}.${Version_Minor}.${Version_Patch}.${BUILD_NUMBER}', 
           worstResultForIncrement: 'SUCCESS'

          ]);
        }
            stage ('Restore packages'){
            steps {
                script{
                echo "${VERSION}"
             }
          }
       }
   }

编辑:它看起来像插件使用的问题,因为这工作:

properties([
    parameters([        
        string(name: 'Version_Major', defaultValue: '1', description: 'Version Major'),
        string(name: 'Version_Minor', defaultValue: '0', description: 'Version Minor'),
        string(name: 'Version_Patch', defaultValue: '0', description: 'Version Patch')
        ])
    ])

pipeline {  
    agent any
    environment {
     VERSION = "${params.Version_Major}.${params.Version_Minor}.${params.Version_Patch}.${BUILD_NUMBER}"
    }

    stages{
    stage ('Test'){
        steps {     
            echo "${VERSION}"
            }
        }
    }
}
jenkins jenkins-pipeline
1个回答
0
投票

您必须在管道内定义变量。

试试这个:

pipeline {  
    environment {
      Version_Major = '1'
      Version_Minor  = '0'
      Version_Patch  = '0'
      VERSION = VersionNumber([
          versionNumberString: '${Version_Major}.${Version_Minor}.${Version_Patch}.${BUILD_NUMBER}', 
       worstResultForIncrement: 'SUCCESS'

      ]);
    }
        stage ('Restore packages'){
        steps {
            script{
            echo "${VERSION}"
         }
      }
   }
}

如果您需要使用参数,那么也可以通过以下方式:

parameters {
        string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
    }

用法:"Hello ${params.PERSON}"

© www.soinside.com 2019 - 2024. All rights reserved.