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

时间:2017-12-25 10:01:41

标签: jenkins jenkins-pipeline

我正在尝试使用版本号插件来格式化我们的版本号 包。 由于某种原因,版本变量的放置不起作用 当我回复以下内容时,我只获得内部版本号,例如:“... 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}"
            }
        }
    }
}

1 个答案:

答案 0 :(得分: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}"