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

Posted 一叶飘舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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'

    

以上是关于Android使用Jenkins打包自动维护sdk版本号的主要内容,如果未能解决你的问题,请参考以下文章

python自动化持续集成:4.Jenkins集成APP源码打包,部署,自动化测试全流程

[原] Jenkins Android 自动打包配置(转)

Jenkins+Gradle+Github实现Android自动化打包

Jenkins自动打包配置

windows环境下jenkins+gradle+Android 自动打包部署

Jenkins配置Android自动打包传蒲公英功能