从零开始搭建linux android jenkins持续集成

前言

此次编辑时间为2018-9-9,所有程序版本尽量使用最新版。搭建顺序大致为服务器->jenkins安装->android环境搭建->配置android任务,本片只是搭建基本的android项目持续集成,更深层次的玩法,如集成tinker热更新、自动分发等,后续再继续(随缘…)补充。

服务器搭建——腾讯云

腾讯云乞丐版,良心学生价10元/月,买不了吃亏买不了上当,但是1m小水管和2g小内存,只适合做简单的中小项目,大佬们可根据需求自行选择服务器。本项目服务器系统为CentOS 7.3 64位。
这里写图片描述

域名+解析

腾讯云上还是能很方便地进行域名注册、解析、备案等操作,基本腾讯云小程序上就能搞定,不赘述。 需要注意的是,最好可以域名备下案,以备不时之需。

连接服务器

可以在腾讯云的云主机界面登录,但是网页端几分钟不操作就会超时断开连接,不建议使用。可以用ssh client远程登录,windows下是不会超时断开连接的,这样可以避免在后续长时间等待操作时的连接断开。
这里写图片描述

Jenkins安装

前置——Apache、jdk等

我基本软件一般都是用yum安装,首先安装jdk(jenkins依赖jdk,推荐yum安装,自己下载安装的话,还要记得配置环境变量),先查看当前可安装的java版本:

# yum -y list java*

再安装jdk,别选错了,不带devel的是jre:

# yum install -y java-1.8.0-openjdk-devel.x86_64

使用

# java -version

查看已安装的java版本,出现以下输出表示已成功安装:
这里写图片描述
apache也顺带装上了:

# yum -y install httpd

安装完成后,编辑配置文件

# vi /etc/httpd/conf/httpd.conf

删除ServerName前的#,修改为ServerName localhost,再启动httpd:

# service httpd start

此时,就可以用自己的域名访问到apache的默认页面了:
这里写图片描述
其他诸如mariadb(mysql也行,但是,你懂的,oracle)、php、Nginx等LAMP、LNMP套件,请参照 CentOS 服务器环境搭建:Linux + Apache + MySQL + PHP + Nginx

Jenkins

接着安装jenkins,推荐使用yum安装,方便快捷:

# yum install jenkins

若是yum提示木有jenkins的repos,需先手动将Jenkins存储库添加到yum的repos,在执行上面的安装:

# 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

安装完成后,需进行一些配置的修改。首先,将jenkins的默认启动用户jenkins修改为root,或其他有权限的用户,jenkins默认用户是木有权限的。其次,jenkins默认端口是8080,跟tomcat冲突,为避免麻烦,此时也一并改了。
打开jenkins配置文件:

# vi /etc/sysconfig/jenkins

修改如下两个位置成下图:
这里写图片描述
最后启动jenkins:

# service jenkins start

输出有ok就表示启动成功了,浏览器输入自己的服务器ip:8081就可以进入jenkins初始页面:
这里写图片描述
管理员初始密码可使用:

#tail /var/lib/jenkins/secrets/initialAdminPassword

查看,输入后,进入插件初始化安装页,鄙人偷懒点的安装默认插件,

这里写图片描述
安装完成后,可以注册一个管理员账户:
这里写图片描述
搞定后,就搞定了:
这里写图片描述

Jenkins插件

进入插件管理:
这里写图片描述
插件视具体项目所需,我自己的项目主要是android的,因此主要有以下额外装的插件(有些是级联装上去的,jenkins会自动把依赖装上):
Android Lint Plugin
Build Timeout
build-name-setter
Clone Workspace SCM Plug-in
Email Extension Plugin
Git Parameter Plug-In
GitHub Branch Source Plugin
GitLab Plugin
Gradle Plugin
Multiple SCMs plugin
Pipeline
Pipeline: GitHub Groovy Libraries
SSH plugin
SSH Slaves
Subversion Plug-in
Timestamper
user build vars plugin
Workspace Cleanup Plugin

Android SDK

首先安装gradle(我放到了/opt/gradle目录,opt下一般是服务器应用):

# wget https://downloads.gradle.org/distributions/gradle-4.9-bin.zip
# unzip gradle-4.9-bin.zip

Android sdk已更改为sdkmanager方式安装,因此需要先去官网下载并解压命令行工具(我是将其下载到/opt/android文件夹下)
这里写图片描述

# wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
# unzip sdk-tools-linux-4333796.zip

解压后得到tools文件夹,先配置android环境变量(顺带gradle环境变量…)

# cd /etc/profile.d/
# vim android.sh

编辑成如下:

export ANDROID_HOME="/opt/android"
export GRADLE_HOME="/opt/gradle"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$GRADLE_HOME/gradle-4.9/bin:$PATH"

再保存并刷新配置:

# source profile

现在就可以使用sdkmanager(和gradle命令)了。
因为是服务器版本,所以19以上的platform以及build-tools我全装了,顺带装了ndk(根目录为/opt/android),可酌情增删:

# sdkmanager "platform-tools" "add-ons;addon-google_apis-google-24"  "ndk-bundle" "build-tools;19.1.0" "platforms;android-19" "build-tools;20.0.0"  "platforms;android-20" "build-tools;21.1.2"  "platforms;android-21"  "build-tools;22.0.1"   "platforms;android-22"  "build-tools;23.0.3"  "platforms;android-23"  "build-tools;24.0.3"    "platforms;android-24" "build-tools;25.0.3"  "platforms;android-25"  "build-tools;26.0.3"     "platforms;android-26"  "build-tools;27.0.3"   "platforms;android-27"  "build-tools;28.0.2"    "platforms;android-28" 

服务器Android环境搭建完毕。

集成android项目

配置jenkins任务

首先新建任务(红色框是推荐必填项,青色是根据项目需要选填):
这里写图片描述
然后就是配置:
这里写图片描述
本项目用的是多源代码,所以需要使用 Multiple SCMs插件:
这里写图片描述
构建触发器中的轮询scm是用的比较多的:
这里写图片描述
修改成/5 * * *表示每5分钟检查一次。
在构建中配置使用gradle,其中tasks就是构建的gradle任务集合:
这里写图片描述
择输出文件,此处即生成的apk文件等,如果使用了混淆,千万记得把mapping文件也一并存起来,说多了都是泪……
这里写图片描述
最后点击保存,jenkins任务配置就算成功了。Jenkins具体用法非常广,可以及其灵活的配置一大堆持续集成的工作,如构建成功后邮件通知、触发自动测试、自动分发等,具体可见官方指南,熟练的话,真的可以玩出花来。

构建

点击立即构建,或者源码有修改时(配置了轮询scm情况下),jenkins会开始构建,并最终得到上面的归档文件,同时你部署的一系列构建后操作也会被执行。
这里写图片描述
若构建失败,可查看相应的控制台输出,详细的很。
这里写图片描述

总结

以上就是简单的搭建linux android jenkins持续集成环境的过程,重点在于linux android环境的搭建(网上一堆资料已过时),以及jenkins的任务配置,再次强烈推荐jenkins官方指南
参考资料:
https://www.w3cschool.cn/jenkins/
https://blog.csdn.net/kai_1215/article/details/80731099
http://www.runoob.com/linux/linux-vim.html
https://kangzubin.com/blog/linux-apache-mysql-php-nginx/
https://blog.csdn.net/kai_1215/article/details/80731099

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值