如何在jenkins中自动增加XML elt值

时间:2019-01-21 13:47:03

标签: jenkins jenkins-pipeline

我在项目存储库中有一个xml文件,在结帐后,我想为每个版本自动增加版本号的最后一个值。我已经在使用xmlslurper访问版本号并将其存储在变量中。我的管道脚本中有这样的内容,而我的xml文件只是一个单行脚本,       1.0.0.0 我想为每个版本自动增加最后一位数字。注意:我不想使用詹金斯的内部编号。只需将我的项目存储库中的最后一位更改为$ BUILD_NUMBER,就可以轻松实现。

@NonCPS

String getVersion(String path) 
{
  def version = new xmlSlurper().parse(new File(path))
  return version.toString()
}

node 
{


 stage ('checkout') {
 .........

 }

stage ('build) {
def pwd2=pwd()
def v=getVersion("${pwd2}/VersionNumber.xml")


sh ' dotnet publish path/to/project -p:Fileversion=$v '

 }
}

1 个答案:

答案 0 :(得分:1)

没有用于此的插件,所以我想您可以使用groovy。如果您不喜欢内部编号,请尝试

def test = "1.1.1.1"
def splitted = test.split('\\.')
splitted[3] = (((splitted[3] as BigDecimal) + 1) as String)
def testInc = splitted.join('.')
print(testInc)

对于内部版本号方法,我建议将整个版本保留在jenkinsfile中,应该很简单:

def version = "1.0.0.${env.BUILD_NUMBER}"