首页 > 其他分享 >jenkins发布前端版本号统一优化

jenkins发布前端版本号统一优化

时间:2023-03-01 23:34:14浏览次数:45  
标签:版本号 前端 pc 发布 version jenkins txt

jenkins发布前端版本号统一优化   之前每周一坑提过,pc端和手机端发布版本号不一致的问题【https://www.cnblogs.com/windysai/p/16659881.html】,现在想统一起来。   因为我发现,测试时不时会通知发布任务,包括发布版本号和发布内容。每周基本一个大版本号 v1.x.0 (需要人为修改版本号记录文件) 或者小版本号 v1.x.{1..n} (本周不定时发布)   现在有个问题,如果有看过我发布逻辑的文章的朋友,应该知道pc端和手机端读的是同一个版本号文件。这就有问题了,因为发布有先后次序,所以手机端总会比pc端的小版本号多1。这样就跟测试或者需求的预想有点出入。   先回顾最新的发布更新版本号逻辑: 服务器上有个版本号文件:version.txt,里面格式:

pc端 v1.9.1 20230111_21:00:00
手机 v1.9.2 20230111_21:00:00
pc端 v1.9.3 20230113_22:05:35
手机 v1.9.4 20230113_22:12:58
。。。
  jenkins发布前,会从这个文件上拿到最后一行的版本号,也就是old_version,为当前系统版本号;new_version是将要发布的版本,即当前系统版本号最后一位+1 (1)无论发布pc前端还是手机端,编译之前会先写入同一个临时版本号文件:  version_tmp.txt, (2)从gitlab上拉取最新代码,用new_version的版本号去更新 .env 文件的版本号(发布后的系统版本号跟这个文件有关) (3)等编译成功,再触发另一个jenkins任务去更新最终版本号文件:version.txt。为了判断是发布pc还是手机,我会在行首以“pc端”还是“手机”去区分。  回到测试人员的问题。  如果要统一大版本号,要人为修改版本号文件:version.txt。之所以设置最后1位是-1,是因为大版本过渡,每次都是已 v1.x.0 来通知我晚上发布的

  即使写成:

pc端 v1.13.-1 20230113_22:05:35
手机 v1.13.-1 20230113_22:12:58

 

   按先后次序发布:先pc再手机,手机发布完之后会成为 v1.13.1,而pc则是预期的v1.13.0

   我想到三种解决方法,最好的一种当然就是pc和手机独立分开使用这个版本号文件,不要相互影响,直到今天中午我才改成这样的。

 临时的两种处理方法是这样的:

先贴上更新版本号的任务,执行shell的内容

if [ $result == "SUCCESS" ]; then
    # 更新版本号到gitlab
    DATE=`date +%Y%m%d_%H:%M:%S`
    new_ver=`cat /var/lib/jenkins/scripts/get_version/version_tmp.txt | awk '{print $2}'`
    
    pkg_deploy=`cat /var/lib/jenkins/scripts/get_version/version_tmp.txt | awk '{print $1}'`
    ## 控制台显示版本号
    if [ $pkg_deploy == "PC端" ]; then 
        echo pc ${new_ver} $DATE >> /var/lib/jenkins/scripts/get_version/version.txt
    else   
        echo 手机 ${new_ver} $DATE >> /var/lib/jenkins/scripts/get_version/version.txt
    fi
    
fi

方法1,在pc端 if 下,echo后面加一个写入上一个版本号的操作

 echo pc ${new_ver} $DATE >> /var/lib/jenkins/scripts/get_version/version.txt

 后面多加一条:
 echo 手机端 上一个版本号 >> /var/lib/jenkins/scripts/get_version/version.txt

  假如new_ver = v1.13.0, 那上一个版本号应该是 v1.13.-1,这样就能保证当发布到手机端的时候,也是v1.13.0

 

方法2,利用发布先后次序(先pc再手机)的特点,

直接删掉:echo pc ${new_ver} $DATE >> /var/lib/jenkins/scripts/get_version/version.txt

只有发布完手机端的时候才更新版本号文件 version.txt

 

 


标签:版本号,前端,pc,发布,version,jenkins,txt
From: https://www.cnblogs.com/windysai/p/17170031.html

相关文章

  • 学习前端遇到的问题以及解决办法
      图中的abc和123相隔很远,按道理来说应该是上下紧贴着的两层的,原因是因为上面的像素高超了一点点导致它下移动了,我们可以用overflow:hidden;放在上面那个盒子里面解决......
  • 路飞项目 day03 前端配置、后台主页、项目依赖问题
    一、路飞项目前端配置1.先删除一些不要的​ 删除多余的组件,只要app和首页组件​ 然后改一下组件的内部代码-App.vue中______________<template><divid="app"><rou......
  • 社招中级前端笔试面试题总结
    typeofnull的结果是什么,为什么?typeofnull的结果是Object。在JavaScript第一个版本中,所有值都存储在32位的单元中,每个单元包含一个小的类型标签(1-3bits)以及......
  • 路飞:路飞前端全局css,全局配置文件、配置axios实现前后台交互、安装vue-cookies、安装e
    目录一、路飞前端全局css,全局配置文件1.1整理项目1.2设置全局css1.3配置全局js二、配置axios实现前后台交互三、安装vue-cookies四、安装elementui五、安装bootstrap和j......
  • luffy前端主页搭建
    子组件页头组件components/Header.vue<template><divclass="header"><divclass="slogan"><p>老男孩IT教育|帮助有志向的年轻人通过努......
  • 前端项目全局样式借鉴
    首先,css的--前缀通常被用在类中,是CSS中对变量声明的前缀。:root{--rotate-arrow:0;--dropdown-height:0;--list-opacity:0;--translate-v......
  • 前端需要了解的计算机网络方面的知识
    1.TCP/IP五层模型物理层、数据链路层、网络层、传输层、应用层2.应用层中哪些基于TCP协议,哪些基于UDP?有什么区别?2.1.TCP:FTP(文件传输协议):定义了文件传输协议,使用2......
  • 滴滴前端二面常考react面试题(持续更新中)
    什么是React的refs?为什么它们很重要refs允许你直接访问DOM元素或组件实例。为了使用它们,可以向组件添加个ref属性。如果该属性的值是一个回调函数,它将接受底层的DOM元素......
  • 前端主页
    前端主页观察原型图首页首页组件头部组件(小组件)轮播图组件(小组件)尾部组件(小组件)首页组件使用home.vue所有小组件写好都要在首页组件里导入注册eg:importH......
  • 美团前端二面经典react面试题总结
    React事件机制<divonClick={this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上,而是在document处监听了所有的事件,当事件发生并......