当前位置: 首页 > 面试题库 >

自动增量发布版本Jenkins

公西苗宣
2023-03-14
问题内容

我有一个在Jenkins中构建的应用程序,并且想要部署到Octopus。在执行此操作时,我必须创建一个发送到Octopus的发行版本。对于此次发布的版本我必须给一个号码(例如:"C:\Octopus\Octo.exe" create-release --project APP --version 4.8 --packageversion=4.8

如何使版本号自动递增?(例如:我已经构建了应用程序,并在Octopus中创建了发行​​版本号4.8,下次创建应用程序时,我想创建发行版号4.9)

谢谢


问题答案:

您可以使用job属性存储版本,然后在每次运行时使用以下脚本对其进行更新(由“ Execute system groovy script”构建步骤执行):

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('.')
}


 类似资料:
  • 版本号 采用三位版本号,分别是主版本号、次版本号、修订版本号。例如 5.1.2。 参见: http://semver.org/lang/zh-CN/。 主版本号:主版本号内的所有版本必须相互兼容;与其它主版本号不一定完全兼容,尽量向下兼容。 次版本号:代表新特性增强。版本号越大特性越丰富。 修订版本号:代表BugFix版本。只做bug修复使用,版本号越大越稳定。 版本维护 最多同时维护两个版本。

  • 如果Maven大师社区可以帮助我完成以下任务,那就太好了。 我想以一种发布过程以批处理模式运行的方式(不需要从控制台询问任何问题)自动化哈德逊中Maven模块的发布过程。目前我使用常见步骤发布:准备 在准备步骤中: 对于与当前模块和父模块的匹配的所有依赖项,请将替换为正式版本(例如)。 发布后的某些时间: 对于与当前模块和父模块的组ID匹配的所有依赖项,请将发布版本替换为快照版本(例如,版本:使用

  • 我有一个奇怪的问题,我的调试版本工作正常,但是在签署并生成一个应用程序包后,我将其上传到Play商店,该应用程序立即崩溃(我在具有我的应用程序的商店版本的手机上运行LogCat,我看到它与AndroidX ConstraintLayout有关,但无法复制它)。我认为和版本之间有一些区别,所以我开始调试我的发布版本。 当我这样做时,Android Studio无法安装APK,出现以下错误: 安装失败

  • 问题内容: 使用Postgres,我试图用SQL自动编号主键。但是,这给了我一个错误。 错误: 知道为什么吗? 问题答案: Postgres 10或更高版本 列(请参见下文)保持不变。但是考虑一个 专栏。Postgres10实现了此标准SQL功能。 手册中的基本语法和信息。 __用列 创建 表 将 列 添加 到现有表 表可能填充也可能不填充行。 同时使它成为PK(表还不能拥有PK): 有关的: 如

  • 这就是我所拥有的 当程序运行时,会出现一个添加新类别的屏幕,用户必须写入类别的名称和描述,但ID应该是自动的,并且应该在每次用户输入新类别时增加ID。我这样做并没有达到预期效果,它只增加了一次,但由于初始值保持在5,所以它总是6。

  • 本页介绍了 MOSN 的 版本发布步骤。 MOSN 版本发布步骤 一、冻结代码 在准备一个版本发布期间,停止代码往 master 分支的合并 二、整理 Release notes 基于 Github 的 PullRequest 记录,整理本次发布的内容与上一个版本之间的差异,需要注意仅统计目标分支是 master 且正常合并的 PullRequest 首先记录原始的信息,统一记录在 MOSN Re