Ubuntu使用Jenkins配置自动化打包Android APK

Posted 殇神马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu使用Jenkins配置自动化打包Android APK相关的知识,希望对你有一定的参考价值。

一、前言

我们开发好功能之后,需要编译打包,打包好的可执行程序需要交给测试人员进行测试,但是往往我们的项目大了之后,编译整个项目,打包的过程的时间相对比较长,这个时候如果是在开发人员的电脑上进行代码的编译打包,这段时间,开发人员就没法进行编码的工作了,这个如果我们需要频繁的打包情况下,效率就会更低了;
所以很多公司团队都会采用在服务器配置自动构建,打包的过程,而不再是在开发人员的电脑上手动构建,编译,打包;甚至是测试人员也可以根据代码的版本,自己随时触发构建打包,然后进行测试;
而Jenkins就是一款非常强大的开源的持续集成工具或者说是平台,我们可以在Jenkins配置我们的自动化构建,编译打包过程;
这篇文章,我们就详细介绍一下,如何在Ubuntu系统上使用Jenkins配置自动化构建,编译,打包Android APK

二、Ubuntu上使用Jenkins自动化打包Android APK环境搭建

1.JDK下载和环境配置

(1)下载JDK
我这里是在JDK官网https://www.oracle.com/java/technologies/downloads/,下载的Java 8 的linux版本的JDK, 因为我的android项目使用的JDK版本就是Java 8的版本;
下载之后解压到一个目录下即可

(2)配置JDK环境变量

打开环境变量配置文件

sudo gedit ~/.bashrc

在环境变量文件末尾添加配置

#配置jdk的环境变量
  export JAVA_HOME=/home/maqing/jdk/jdk-linux-x64/jdk1.8.0_131
  export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
  export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

注意这里JAVA_HOME的路径就是你的JDK的根目录

使环境变量配置生效

source ~/.bashrc

查看配置是否成功

java -version

使用java -version 命令,如果成功显示了JDK的版本,则说明JDK环境变量配置成功

2.安装Git

由于我们是使用Git进行项目的版本控制和管理的,所以这里需要下载Git

使用如下命令安装Git

sudo apt-get install git

查看git是否安装成功

git --version

使用git --version,如果成功显示了git的版本,则说明git安装成功

3.Gradle的下载和环境变量配置

我们知道现在Android项目的构建是通过gradle工具进行构建的,所以需要下载gradle,这里的gradle的版本和你项目中使用的gradle版本一致即可

(1)下载gradke

我这里是在Gradle的官网https://gradle.org/releases/,下载的gradle-6.7.1-all.zip,因为我的Android项目中使用的是gradle-6.7.1
下载之后解压到某个目录即可

(2)配置Gradle环境变量

打开配置文件

sudo gedit ~/ .bashrc

在环境变量文件末尾添加配置

#配置Gradle环境变量
    export GRADLE_HOME=/home/maqing/gradle/gradle-6.7.1-all/gradle-6.7.1
    export PATH=$GRADLE_HOME/bin:$PATH

这里的GRADLE_HOME的路径就是你的gradle的根目录

使得配置生效

source ~/.bashrc

查看配置是否成功

gradle -version

使用gradle -version 命令,如果成功显示了Gradle的版本,则说明Gradle环境变量配置成功

4.Android SDK下载和环境变量配置

(1)下载Android SDK下载工具sdkmanager

去Android开发者官网https://developer.android.google.cn/studio,找打Command line tools 下载地方,下载SDKManager这个Android SDK下载管理工具,我这里下载的是commandlinetools-linux-7583922_latest.zip ,下载之后解压缩到某个目录
然后我们在命令行中进入到它解压出来的bin目录,使用如下命令查看最新的stable版本

./sdkmanager --list --channel=0

使用该命令报错
Error: Could not determine SDK root.
Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/
报错了,无法找到sdk根目录,提示说有两种解决办法:一是用–sdk_root指定路径,二是把文件夹移动到指定路径。

到上层目录,commandlinetools根目录 ,执行如下命令

mkdir latest
mv bin/ lib/ NOTICE.txt source.properties -t latest/

然后到latest/bin目录

cd latest/bin/
./sdkmanager --list --channel=0

执行查看命令,不再报错,可以正常查看stable版本

(2) 安装Android SDK,并配置环境变量

我的Android项目使用的是compileSdkVersion 30,buildToolsVersion “30.0.3” ,所以安装对应的platforms
使用如下命令安装对应版本的 Android SDK

./sdkmanager "build-tools;30.0.3" "platforms;android-30"

打开配置文件

sudo gedit ~/ .bashrc

在环境变量文件末尾添加配置

#配置Android SDK环境变量
export ANDROID_HOME=/home/maqing/android-sdk-tool/commandlinetools-linux-7583922_latest
export ATH=$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH

使配置生效

source ~/.bashrc

5.安装Jenkins

可以根据Jenkins官网https://pkg.jenkins.io/debian-stable/文档进行安装

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
sudo ln -s /home/maqing/jdk/jdk-linux-x64/jdk1.8.0_131/bin/java /usr/bin

默认端口号为8080,修改端口号为8081

 sudo gedit /etc/default/jenkins

启动Jenkins Service

sudo service jenkins start

打开浏览器,输入 http://localhost/8081/ 进入Jenkins的网页,如果正常进入Jenkins网页,说明

Jenkins安装成功

网页主页,需要输入Administrator password ,这个密码网页上会提示你在

/var/lib/jenkins/secrets/initialAdminPassword里面可以查看

我们可以在命令行中 cat /var/lib/jenkins/secrets/initialAdminPassword 查看

cat /var/lib/jenkins/secrets/initialAdminPassword

然后在网页中输入密码,然后会进入下一步的配置

(1)安装建议的一些插件

在上一步安装Jenkins的时候,我们进入Jenkins主页,输入密码之后,可以选择Install suggested plugins,安装建议的一些插件

(2) 安装完插件后然后会进入创建Admin用户的界面

输入username,password,full name,E-mail address,然后Jenkins的基本配置项暂时完成了,会显示Jenkins is Ready,点击 start using jenkins

6.Jenkins 配置Android项目构建,编译,打包

1.插件配置

点击 Manage Jenkins,查看Available 可获得的插件
由于之前初次进入Jenkins主页的时候 Install suggested plugins,已经安装了git,gradle,jdk
这些插件了,所以这一步就不需要再安装Jenkins 的插件了

2.全局环境配置

点击Global Tool Configuration,进行JDK,Git,Gradle相关配置

(1)JDK配置

  JDK Name :JDK 1.8 //这个可以随意写
  JAVA_HOME: /home/maqing/jdk/jdk-linux-x64/jdk1.8.0_131/bin //你的JDK目录,不知道可以通过which java命令查看,要到bin目录


(2)Git配置

Git name: Git 2.25.1 //这个可以随意写
Path to Git  executable: /usr/bin/git //Git的安装目录,不知道可以通过which git 命令查看


(3)Gradle配置

 Gradle name :Gradle 6.7.1 //这个可以随意写
 GRADLE_HOME:/home/maqing/gradle/gradle-6.7.1-all/gradle-6.7.1 //gradle的目录


3.Android SDK配置
Manager Jenkins–>Configure System,然后找到Global properties–>Environment variables
添加Android SDK配置

Name: ANDROID_HOME
Value: /home/maqing/android-sdk-tool/commandlinetools-linux-7583922_latest


至此Jenkins上Android项目构建的一些基本配置就配置好了,接下来就需要在Jenkins创建项目去完成自动构建,编译和打包过程

5.Jenkins上创建项目

1.创建项目

在jenkins主页点击 New Item
输入项目名字(Enter an item name)
选择 Freestyle project,点击OK创建

2.项目配置

(1)Source Code Managemanet 配置

这里就是配置我们的项目关联的git仓库地址

选择Git

Repositories

Repository URL:https://gitee.com/maqing/new-dreame-delivery-robot.git

Credentials Add添加一个,输入git仓库对应的用户名和密码

然后选择该 Credentials

Branch Specifier

如果是分支:*/branch_name 也可以是tag: refs/tags/tag_name


(2)Build 配置

选择 Invoke Gradle script

Gradle Version :Gradle 6.7.1

Tasks: //构建任务

 clean    //清除一下
 assemble //打包

然后Save 保存所有配置

6.打包APK

在Jenkins主页中 ,点击MyViews,可以看到当前创建的项目 DreameDeliveryRobot

点击该项目进去,在左侧可以点击 Build with parameters 开始构建打包

点击之后,在Build History就能看到当前的构建进度,以及之前的构建历史

点击当前的构建任务或者之前的构建历史,左侧有Console Output可以看到,该次构建的过程

输出日志

构建打包成功,在Workspace会有对应的项目代码目录,

并且在app/build/output/apk/release 中会有打好的包

构建历史以及打包好的包


点击左侧Build history中任意一个构建,然后点击Console Output,可看到构建过程


以上就是Ubuntu中使用Jenkins配置自动化构建,编译,打包Android APK的过程

以上是关于Ubuntu使用Jenkins配置自动化打包Android APK的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu使用Jenkins配置自动化打包Android APK

ios 在mac上配置Jenkins自动化打包

Ubuntu搭建Jenkins+Android自动化打包

Android自动化打包记录--Jenkins+Docker+WSL2

Android自动化打包记录--Jenkins+Docker+WSL2

jenkins ios 自动化打包一定要在mac下吗