Android使用Jenkins打包自动维护sdk版本号

简介: Android使用Jenkins打包自动维护sdk版本号

在时候使用Jenkins打包sdk的时候,有时候我们想在打包完成后更新一下sdk的版本号,这时可以这样做。

在工程跟目录下新增jenkins_aar.sh:

#!/usr/bin/env bash
# jenkins打包脚本
 
# 校验环境
result=$(echo "$SDK_BRANCH")
if [[ "$result" == "" ]]; then
  echo "非 jenkins 环境,无法执行"
  exit
fi
 
# 版本号格式为:1.0.0(三位),调用改方法会自动修改版本号(最后一位+1)
versionFile='version.properties'
currentVersionName1=$(sed -n 1p $versionFile)
currentVersionName2=$(sed -n 2p $versionFile)
currentVersionName3=$(sed -n 3p $versionFile | cut -d '=' -f 2)
currentVersionName4=$(sed -n 4p $versionFile)
currentVersionName5=$(sed -n 5p $versionFile)
echo "Old versionName: $currentVersionName3"
versionArr=($(echo $currentVersionName3 | tr '.' ' ' | tr -s ' '))
currentVersionName3="${versionArr[0]}.${versionArr[1]}.$[${versionArr[2]}+1]"
echo "New versionName: $currentVersionName3"
echo -e "$currentVersionName1\n$currentVersionName2\nversionName=$currentVersionName3\n$currentVersionName4\n$currentVersionName5" > $versionFile
 
# 执行上传任务
./gradlew photo:uploadArchives
./gradlew camera:uploadArchives
//这里可以批量添加多个上传任务
 
# git Tag 任务
echo "---- 提交改动 ----"
git add version.properties
git commit -m "更新version.properties版本号:$currentVersionName3"
git push origin HEAD:refs/heads/${SDK_BRANCH}
echo "---- 提交当前分支(${SDK_BRANCH}) ----"
 
git tag aar_$currentVersionName3
git push origin aar_$currentVersionName3

注意:SDK_BRANCH是从环境变量中读取的当前打包的分支名称

在工程跟目录下新增version.properties:

#【SHELL 中读取的是指定行数,所以不要添加新的行】
# jenkins 打包时,会自增 versionName 字段,用于 AAR 打包
versionName=1.0.0

在工程根目录的build.gradle里面配置如下:

buildscript {
 
    ext {
        // version 相关信息从 version.properties 文件中读取
        Properties versionProperties = new Properties()
        InputStream versionIs = project.rootProject.file('version.properties').newDataInputStream()
        versionProperties.load(versionIs)
        versionIs.close()
        sdk_version = versionProperties.getProperty('versionName')
 
    }
 
    repositories {
        google()
    }
 
  
 
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
 
    }
}


相关文章
|
27天前
|
Java API 开发工具
Android cmdline-tools版本与最小JDK的关系
总的来说,Android的命令行工具和JDK之间的关系就像是一场舞会,两者需要彼此配合,才能共同创造出美妙的舞蹈。如果选择了不合适的舞伴(即不兼容的版本),可能会导致舞蹈中的步伐混乱,甚至无法完成舞蹈。而即使选择了合适的舞伴,也需要考虑舞伴的舞蹈技巧(即性能和稳定性),才能确保舞蹈的完美表现。因此,选择合适的Android命令行工具和JDK版本,是每一个Android开发者都需要面对的重要决定。
55 13
|
3月前
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
361 83
|
6月前
|
人工智能 搜索推荐 物联网
Android系统版本演进与未来展望####
本文深入探讨了Android操作系统从诞生至今的发展历程,详细阐述了其关键版本迭代带来的创新特性、用户体验提升及对全球移动生态系统的影响。通过对Android历史版本的回顾与分析,本文旨在揭示其成功背后的驱动力,并展望未来Android可能的发展趋势与面临的挑战,为读者呈现一个既全面又具深度的技术视角。 ####
|
2月前
|
安全 开发工具 Android开发
【Android Git】Git版本回退方式
在实际操作中,选择合适的版本回退方式,可以有效地管理代码版本,提高开发效率和代码质量。
151 26
|
3月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
128 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
3月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
253 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
4月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
93 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
5月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
388 11
|
9月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
252 0
|
6月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
194 1