Jenkins 搭建Android自动打包环境

操作环境

  • 本地环境 MAC
  • 远程环境 Linux

登录远程Linux

  1. 使用mac自带的terminal ssh登录远程无服务
  2. 使用工具Iterm2 或者 Termius (windows可以选择使用xshell),这里我选择使用Termius,可以找破解版的
  • 使用Termius登录成功后


    image.png

Jenkins环境搭建

Linux环境配置

  • 更新软件源
sudo apt-get update

安装jdk

  • 查看java版本
-java -version
  • 根据你的Android编译时所需要的jdk版本,安装对应的版本;这里安装jdk11,去oracle官方平台下载 jdk11

  • 使用SFTP将文件从Mac拷贝到远程Linux中

  • 解压到相应的目录

  • 配置环境变量

# 编辑环境变量
vim /etc/profile

#在打开的文件中添加如下配置
JAVA_HOME=/usr/local/jdk-11.0.14
CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

#使环境变量生效
source /etc/profile

安装Jenkins 参考连接

 #1. 我们将存储库密钥添加到系统。
 wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
 #2. 添加密钥后,系统将返回OK 。 接下来,我们将Debian包存储库地址附加到服务器的sources.list
 echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
 #3. 运行update ,以便apt-get将使用新的存储库
 sudo apt-get update
 #4. 最后,我们将安装Jenkins及其依赖项,包括Java
 sudo apt-get install -y jenkins

启动Jenkins服务

 #使用systemctl我们将启动Jenkins
 sudo systemctl start jenkins

 #由于systemctl不显示输出,我们将使用其status命令来验证它是否成功启动
 sudo systemctl status jenkins 

 #重启Jenkins
 sudo systemctl restart jenkins

设置Jenkins

#登录Jenkins
#使用服务器域名或IP地址访问Jenkins的默认端口8080
http://ip_address_or_domain_name:8080
#浏览器会显示设置初始密码,地址浏览器上面会显示,如下面的路径
#/var/lib/jenkins/secrets/initialAdminPassword
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

android sdk搭建 参考链接

  • android sdk下载
    下载地址:http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
    如果是本地下载,需要将下载后的包上传到远程linux
  • 进入android放置的目录,我这里是(/android/sdk/),解压tar -zxvf android-sdk_r24.4.1-linux.tgz
  • 配置sdk环境变量,编辑/etc/profile,添加如下配置
export ANDROID_HOME=/android/android-sdk-linux
export PATH=$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tool
export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/latest/bin
  • 安装sdk
#显示可下载更新的所有资源包
android list sdk --all
image.png

image.png
  • 更新sdk
#根据sdk更新对应的包
ndroid update sdk -u --all --filter 1,2,3,4,5,6,7,8,...

如果你需要的sdk和buildtools版本没有在列表中,请下载命令行工具

  • 下载sdk命令行工具 点击下载

  • 将下载的压缩包解压到android/android-sdk-linux/command-tools/latest


    image.png
  • sdkmanager使用

配置jenkins

  • 参考

常见错误

  • 打包时报错
> Failed to install the following Android SDK packages as some licences have not been accepted.
    build-tools;30.0.2 Android SDK Build-Tools 30.0.2
    platforms;android-31 Android SDK Platform 31
 To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
#解决办法
sdkmanager配置
> Failed to install the following SDK components:
     build-tools;30.0.2 Android SDK Build-Tools 30.0.2
     platforms;android-31 Android SDK Platform 31
 The SDK directory is not writable (/android/android-sdk-linux)
#解决办法
sdkmanager "build-tools;30.0.2"
sdkmanager "platforms;android-31"
  • 二维码图片无法显示
[description-setter] Could not determine description.
#解决办法,set build description 正则表达式的参数需要和控制台日志输出的变量配一致
如下面的appQRCodeURL=([a-zA-z]+://[^\s]*)需要匹配控制台输出的日志
set build description

控制台日志输出

你可能感兴趣的:(Jenkins 搭建Android自动打包环境)