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 协议》,转载必须注明作者和本文链接