CentOS7 Jenkins Android自动化打包

2,069 阅读1分钟

linux常用命令

  • 查看当前目录路径
pwd
  • find命令用来搜索文件、字符串和目录;在下面这个例子中,find命令搜索“/”分区中的androidTest单词,并返回输出。
# find / -name androidTest
/root/.gradle/wrapper/dists/gradle-5.6.4-all/ankdp27end7byghfw1q2sw75f/gradle-5.6.4/samples/kotlinDsl/androidBuild/app/src/androidTest
/root/.gradle/wrapper/dists/gradle-5.6.4-all/ankdp27end7byghfw1q2sw75f/gradle-5.6.4/samples/kotlinDsl/androidSingleBuild/src/androidTest

安装配置Java环境

  • java官网下载相应jdk版本:这里下载的是jdk-8u121-linux-x64.tar.gz
  • 解压tar -zxvf jdk-8u121-linux-x64.tar.gz
  • 查看目录
# pwd
/usr/local/java/jdk1.8.0_121
  • 配置java环境变量,在末尾添加后保存,然后执行source /etc/profile生效
# vi /etc/profile

# java 
export JAVA_HOME=/usr/local/java/jdk1.8.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH



# source /etc/profile

安装配置android环境

  • 下载android sdk

只能下载以前的版本android-sdk_r24.4.1-linux.tgz下载链接

  • 解压

tar -zvxf android-sdk_r24.4.1-linux.tgz

  • 配置android环境变量,在末尾添加后保存,然后执行source /etc/profile生效
# java
...

# android
export ANDROID_HOME=/usr/local/androidsdk/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH



# source /etc/profile

  • 问题

在后面的使用中会存在下面的问题

Failed to install the following Android SDK packages as some licences have not been accepted

cd /usr/local/androidsdk/android-sdk-linux/tools/bin

./sdkmanager --licenses

以及sdk版本太低,需要通过命令升级sdk

更新sdk报错,需要加上--no-ui

$ android update sdk
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3550 or swt-pi-gtk in swt.library.path, java.library.path or the jar file
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
        at org.eclipse.swt.internal.gtk.OS.<clinit>(Unknown Source)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
        at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
        at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:403)
        at com.android.sdkmanager.Main.doAction(Main.java:369)
        at com.android.sdkmanager.Main.run(Main.java:151)
        at com.android.sdkmanager.Main.main(Main.java:117)
$ android update sdk --no-ui

Refresh Sources:
  Fetching https://dl.google.com/android/repository/addons_list-2.xml
  Validate XML
  Parse XML
  ....

安裝Jenkins

  • 创建下面文件夹以及修改目录权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
  • 下载Jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install -y jenkins
  • 配置文件
vi /etc/sysconfig/jenkins

#监听端口
JENKINS_PORT="9000"
#用户
JENKINS_USER="root"
  • 启动
#启动
systemctl start jenkins

#重启
systemctl restart jenkins

#查看服务,显示瞬间行程 (process) 的动态
ps -ef | grep jenkins

  • 打开 访问Jenkins http:127.0.0.1:9000,按照指引,安装推荐的插件选项即可

  • 全局工具配置JAVA_HOME

  • 系统配置,配置全局属性,配置ANDROID_HOME

  • 创建android项目 配置jenkins相关变量 This project is parameterized

渠道类型

编译类型

Git Parameter需要在插件市场安装

  • Git配置

  • 构建 参考下面存在问题,这里修改为:

clean
--no-deamon
-info
assemble${Flavor}${BuildType}

  • 构建后操作

  • 开始构建

问题

Jenkins异常Gradle build daemon disappeared unexpectedly解决

打包命令添加:

--no-deamon

你的 Jenkins 数据目录 "/var/lib/jenkins" (AKA JENKINS_HOME) 就快要空间不足了。你应该在它被完全撑满之前就有所行动。

丢弃旧的构建(Discard old builds)选项:

保持构建的天数:2

保持构建的最大个数:2

发布包保留天数:5

发布包最大保留#个构建: