Mac 环境下 Android 使用 Jenkins 构建自动化打包

安装 Jenkins

这里不在赘述,官网上使用 brew 安装

配置

Jenkins 安装成功后,就可以开始配置了

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置 JDK

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置 Git

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置 gradle

Mac 环境下 Android 使用 Jenkins 构建自动化打包

全局属性配置

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置 ANDROID_SDK 的路径

增加 android_home 的环境变量

Mac 环境下 Android 使用 Jenkins 构建自动化打包

自动化打包

接下来新建一个任务,选择自由风格

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置git地址

Mac 环境下 Android 使用 Jenkins 构建自动化打包

如果你使用的是 https,那么需要配置认证,我这里使用的是 ssh,所以不需要配置认证,认证的方式需要添加凭据

Mac 环境下 Android 使用 Jenkins 构建自动化打包

配置参数化构建过程

可以在构建时,通过传入参数来灵活打包

Mac 环境下 Android 使用 Jenkins 构建自动化打包

Mac 环境下 Android 使用 Jenkins 构建自动化打包

构建打包脚本

Mac 环境下 Android 使用 Jenkins 构建自动化打包

这里有这些选项,可以使用 Invoke Gradle script, 我这里使用的是执行 shell

我们的项目打包是使用项目目录下的 gradlew 执行脚本,所以我直接使用 shell 来构建打包

Mac 环境下 Android 使用 Jenkins 构建自动化打包

这里我执行了两个 shell
需要解释一下的是 echo xxx | sudo -S 这一段
由于我的电脑在本地打包时,执行 gradlew 必须使用 sudo 输入我的电脑密码,所以当执行脚本时,我通过加上 -S 参数来从 echo xxx 这里获取到密码,达到自动输入密码。
参考:使用带密码的sudo

第二段 shell 的完整如下

echo xxx | sudo -S $WORKSPACE/gradlew clean assemble${BUILD_TYPE}Channels -PchannelList=${CHANNEL}

$WORKSPACE 是你的工作目录,可以查看 可用的环境变量列表

需注意

由于我使用的是 gradlew 这时候如果直接打包的话会报错

Mac 环境下 Android 使用 Jenkins 构建自动化打包

找不到 local.properties,该文件在项目路根目录,并且是不提交到 git 的,所以要手动在工作空间根目录中创建该文件,并写入以下内容

## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Tue Aug 24 17:18:51 CST 2021
sdk.dir=/Users/yang/Library/Android/sdk

配置完成后,就可以开始构建了。

Mac 环境下 Android 使用 Jenkins 构建自动化打包

构建成功后,就可以在你的工作空间看到打好的包了。

以上是最简单的一个流程。

jenkins构建后操作archive the artfacts-归档成品的用法

Mac 环境下 Android 使用 Jenkins 构建自动化打包

Mac 环境下 Android 使用 Jenkins 构建自动化打包

Mac 环境下 Android 使用 Jenkins 构建自动化打包
以上,每一个 build 都会把打包好的文件归档起来。永久存储

参考文章:
Mac 环境下 Android 使用Jenkins 构建自动化打包_夏至的稻穗的博客
jenkins构建后操作archive the artfacts-归档成品的用法
Jenkins构建时选择发布的分支

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!