文章目录
简介
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins通过Docker部署运行时,Jenkins的容器环境不包含构建Android应用所需的工具(如Android SDK等)。但Jenkins支持在流水线的单个 Stage或整个流水线中使用Docker镜像作为执行环境,方便用户管理构建和测试环境。
本文档介绍在Docker运行Jenkins的环境下,用Jenkins构建Android项目的两种方式——Freestyle project构建任务和Pipeline构建任务。
操作环境
操作系统:CentOS Linux release 7.7.1908
Docker版本:19.03.5
Jenkins Docker镜像:jenkins/jenkins:lts
Jenkins版本:2.263.2
一、Jenkins自由风格项目(Freestyle project)
前置准备工作
由于Jenkins运行在Docker容器环境中,Android的编译环境也就是这个容器,所以需要这个环境有编译Android项目的工具——Android SDK和Gradle。
设置Android SDK
首先需要进入到Jenkins的容器环境中,操作命令:
docker exec -it fe8e26096760 /bin/bash
然后通过命令行安装Android SDK。以下为一个方便设置的脚本:
#!/bin/bash
mkdir /android-sdk && cd /android-sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
unzip -q commandlinetools-linux-6858069_latest.zip
mkdir latest && mv cmdline-tools/* latest && mv latest cmdline-tools/
yes | cmdline-tools/latest/bin/sdkmanager --licenses
#安装必要的构建工具
yes | cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" "platforms;android-29"
Android Gradle插件是通过环境变量来确定Android SDK的位置的,所以需要配置一个名为ANDROID_HOME或ANDROID_SDK_ROOT的环境变量,其值为Android SDK所在的路径。设置方式:
“Manage Jenkins” -> “Configure System” -> “Global properties” -> 勾选上“Environment variables” -> 点击“Add”,输入环境变量名称和值,如图1所示:

图1
输入完成后,滚动至页面底部,依次点击“Apply” -> “Save”来保存。
设置Gradle(可选)
“Manage Jenkins” -> “Global Tool Configuration” -> Gradle域点击“Gradle installations” -> ”Add Gradle“。输入一个名字,并勾选上“Install automatically”,在下方选择和代码工程中一致的Gradle版本。最后依次点击屏幕左下角“Apply” -> “Save”保存设置。设置结果如图2所示:

图2
创建Freestyle project任务
1、 在Jenkins首页左上角点击“New Item”新建一个任务,进入图4页面。

图3
2、在该页面中,输入任务名称,类型选择Freestyle project,然后点击左下角“OK”进入配置页面。

图4
3、点击顶部“Source Code Management”选项卡,滚动到Source Code Management配置部分。类型选择“Git”;然后在Repositories域中,添加代码仓库地址和访问代码仓库的用户凭证;在Branches to build域中,设置用来编译的代码分支,如图5所示。

图5
4、(可选)点击顶部“Build Trigger”选项卡,滚动到Build Trigger配置部分,设置合适的触发器,比如配置远程http接口调用来触发。如不配置这部分,也可以通过手动来触发。

图6
5、点击顶部“Build”选项卡,滚动到Build配置部分。点击“Add build step”,在下拉列表中选择“Invoke Gradle script”,如图7所示。

图7
调用Gradle脚本的方式有两种,如图8所示;
- Invoke Gradle;在“Gradle Version”点击展开下拉列表,选择要使用的Gradle版本。这里展示的选项就是我们前面在Jenkins系统管理页面“Global Tool Configuration”中设置的全局Gradle工具版本。
- Use Gradle Wrapper;这种方式是使用源码工程中的Gradle配置,和在Android Studio中编译项目一样。
不管选择那种方式,都需要在下方的Tasks域中填写需要执行的Gradle构建任务和参数,例如:
clean assembleRelease --no-daemon

图8
为了使Jenkins的构建环境和开发编译时的环境尽量保持一致,避免Jenkins出现一些不必要的环境问题,推荐这一步选择Use Gradle Wrapper。
6、在最下面的“Post-build Actions”配置部分,点击“Add post-build action”,在下拉列表中选择“Archive the artifacts”,将指定的编译输出文件归档。便于以后我们在Je

本文详细介绍了如何在Docker环境下的Jenkins中构建Android项目,包括设置Jenkins容器内的AndroidSDK和Gradle,创建Freestyleproject和Pipeline任务。还涉及到Docker镜像的使用、内测分发以及常见问题的解决方案。

944

被折叠的 条评论
为什么被折叠?



