gpt4 book ai didi

jenkins - Jenkins 自增发布版本

转载 作者:行者123 更新时间:2023-12-04 10:03:27 25 4
gpt4 key购买 nike

我有一个在 Jenkins 中构建的应用程序,我想将它部署到 Octopus。当我这样做时,我必须创建一个发送到 Octopus 的发布版本。对于这个发布版本,我必须给出一个数字(例如: "C:\Octopus\Octo.exe" create-release --project APP --version 4.8 --packageversion=4.8 )

我怎样才能使版本号自动增加? (例如:我已经构建了应用程序并在 Octopus 中创建了发布版本号 4.8,下次构建应用程序时我想创建发布版本号 4.9)

谢谢

最佳答案

您可以使用作业属性来存储版本,然后在每次运行时使用以下脚本更新它(由“执行系统 ​​groovy 脚本”构建步骤执行):

import jenkins.model.Jenkins
import hudson.model.*

def jenkins = Jenkins.getInstance()
def jobName = "yourJobName"
String versionType = "minor"
def job = jenkins.getItem(jobName)

//get the current version parameter and update its default value
paramsDef = job.getProperty(ParametersDefinitionProperty.class)
if (paramsDef) {
paramsDef.parameterDefinitions.each{
if("version".equals(it.name)){
println "Current version is ${it.defaultValue}"
it.defaultValue = getUpdatedVersion(versionType, it.defaultValue)
println "Next version is ${it.defaultValue}"
}
}
}

//determine the next version by the required type
//and incrementing the current version

def getUpdatedVersion(String versionType, String currentVersion){

def split = currentVersion.split('\\.')
switch (versionType){
case "minor.minor":
split[2]=++Integer.parseInt(split[2])
break
case "minor":
split[1]=++Integer.parseInt(split[1])
break;
case "major":
split[0]=++Integer.parseInt(split[0])
break;
}
return split.join('.')
}

关于jenkins - Jenkins 自增发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com