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'
 
    }
}


相关文章
|
1月前
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
19 1
|
5天前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
12 0
|
6天前
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
|
11天前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
10 0
|
16天前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
26 0
|
2月前
|
jenkins 持续交付 开发工具
蓝易云 - 基于Jenkins自动打包并部署docker环境
以上就是基于Jenkins自动打包并部署docker环境的基本步骤。在实际操作中,你可能需要根据你的具体需求进行一些调整。
134 0
|
17天前
|
Java Linux 开发工具
由" failed to run the android sdk manager"引起的一系列问题 android
由" failed to run the android sdk manager"引起的一系列问题 android
|
24天前
|
开发工具 Android开发 Windows
Android Studio安装Unable to access Android SDK add-on list处理方法
Android Studio安装Unable to access Android SDK add-on list处理方法
24 0
|
2月前
|
存储 开发工具 iOS开发
打包SDK静态库
打包SDK静态库
31 0
|
2月前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章