Jenkins持续集成环境安装
概述
Jenkins用来做啥?
持续集成,软件的自动构建,测试,发布,实现自动化和流程化,提高效率,便于管理。
为什么要用Jenkins?
机器能完成的事,就不要开发人员去手动操作,第一,提高效率,第二,减少手工误操作,将开发人员从繁琐、无聊的构建、发布工作中解放出来,专注于业务和编码的设计实现。
本文的目标是在CentOS 7系统上安装部署Jenkins,实现Android的自动打包和发布到蒲公英平台(关于自动化测试部分后面再慢慢学习)。本文的软硬件环境如下:
虚拟机: VMWare 12.x
操作系统:CentOS7(Desktop)
Java版本:JDK 1.8
git版 本: Git1.8.3
Gradle版本:3.4.1、4.1
Android SDK:
Jenkins版本:
一、安装CentOS7 虚拟机
- 下载CentOS7系统镜像,有三个选择,DVD ISO,EveryThing ISO,Minimal ISO。这里下载的是EveryThing ISO,桌面版的,主要是考虑到后面可能用来跑Android Studio。
- 在VMWare上创建虚拟机,选择上面下载的系统镜像,建议内存>=2G(在阿里云上1G1核的服务器上试过,Gradle构建的过程中奔溃了,应该是内存不够用的原因)
- 其它一路默认就OK了
二、Java环境
由于安装的版中已经有Open JDK1.8.3了,所以就不用装了,如果是其它版本没有Java环境的,那么需要安装Java环境,并且配置好JAVA_HOME环境变量,如果要安装甲骨文的JDK,大概步骤如下(如果已经有OpenSDK需要先卸载):
1. 下载JDK,注意选择版本,Linux,32位还是64位,这里下载的是64位的
wget http://220.112.193.200/files/9130000004D8B9C4/download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
解压到指定目录
mkdir /usr/local/java mv jdk-8u144-linux-x64.tar.gz /usr/local/java cd /usr/local/java tar -zvxf jdk-8u144-linux-x64.tar.gz
添加Java环境变量
vim /etc/profile // 在文件末尾追加: JAVA_HOME=/usr/local/java/jdk1.8.0_144 JRE_HOME=$JAVA_HOME/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar export JAVA_HOME JRE_HOME PATH CLASSPATH
验证是否安装成功
java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
到此,Java环境配置成功
三、Git
git的安装比较简单:
yum install git
安装的版本是 git 1.8.3.1
四、Gradle
下载gradle最新版本
wget https://downloads.gradle.org/distributions/gradle-4.1-bin.zip
解压到指定目录
mv gradle-4.1-bin.zip /usr/local/java unzip gradle-4.1-bin.zip
添加环境变量
vi /etc/profile // 追加: export PATH=$PATH:/usr/local/java/gradle-4.1/bin
验证是否安装成功
gradle -v ------------------------------------------------------------ Gradle 4.1 ------------------------------------------------------------ Build time: 2017-08-07 14:38:48 UTC Revision: 941559e020f6c357ebb08d5c67acdb858a3defc2 Groovy: 2.4.11 Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015 JVM: 1.8.0_144 (Oracle Corporation 25.144-b01) OS: Linux 3.10.0-514.el7.x86_64 amd64
到此Gradle安装成功(主要是为了后面Android Studio使用,Jenkins上面可以选择自动下载,但是比较慢)
5、Android SDK和NDK
-
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
解压到指定目录
tar -zvxf android-sdk_r24.4.1-linux.tgz
配置环境变量
export ANDROID_HOME=/usr/local/java/android-sdk-linux export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools
更新sdk
android list sdk -u(如果只是命令行,而没有桌面,那么要在后面加上(注意空格): --no-ui)
需要下载的内容较多,需要等待很长一段时间……
到此,Android SDK配置完毕!
NDK
wget https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip unzip android-ndk-r15c-linux-x86_64.zip
将NDK路径写入/ect/profile
export ANDROID_NDK_HOME=/usr/local/java/android-ndk-linux export PATH=$PATH:$ANDROID_NDK_HOME
六、Jenkins
下载Jenkins
这里选择Red Hat/Fedora/CentOS执行三个命令即可:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key yum install jenkins
(PS:30kb/s,不是一般的慢……)
修改端口(默认8080,一般Tomcat默认也是8080,所改为8081)
vi /etc/sysconfig/jenkins // 修改JENKINS_PORT为8081 JENKINS_PORT="8081"
修改Jenkins的用户
安装Jenkins会默认创建一个Jenkins用户,Jenkins属于这个用户(没搞懂Linux的应用程序和用户的关系,是不是每个应用程序都属于某个用户,然后这个应用程序只能访问这个用户的文件?)
vi /etc/sysconfig/jenkins // 修改JENKINS_USER为root JENKINS_USER="root"
启动Jenkins
可能会报错:Starting Jenkins bash: /usr/bin/Java: 没有那个文件或目录 ,参考这篇博客上的来修改即可,大概如下:
vim /etc/init.d/jenkins candidates=" /etc/alternatives/java /usr/lib/jvm/java-1.7.0/bin/java /usr/lib/jvm/jre-1.7.0/bin/java /usr/lib/jvm/java-1.8.0/bin/java /usr/lib/jvm/jre-1.8.0/bin/java /usr/bin/java // 追加你的工作目录 /opt/soft_dsp/jdk1.7.0_75/bin/java
如果没有更多问题,那么在终端输入:service jenkins start
即可启动Jenkins,然后就可以开始持续集成自动化打包发布应用了。
(也可以下载Jenkins.war,然后通过Java命令运行,或者扔到Tomcat的webapps目录中,然后运行Tomcat,请参考官方文档)
七、Jenkins基本配置
Configure System
manager Jenkins->Configure System->Environment variables,增加两个环境变量
- Android SDK 环境路径(path/to/android-sdk/)
- NDK 环境路径(path/to/android-ndk)
Global Tool Configuration
manager Jenkins->Configure System-> Global Tool Configuration,添加系统工具,JDK,Git,Gradle等,可以选择本地,也可以选择让Jenkins自己安装,只需要增加对应版本即可,比较简单,对于Android,只需要添加JDK,Git,Gradle就够用了。
- JDK
- Git
- Gradle
Configure Global Security(用户权限设置)
manager Jenkins->Configure System->Configure Global Security
Manager Users(用户管理)
manager Jenkins->Configure System->Manager Users
八、Android 项目配置
点击New Item,选择Freestyle project,填写项目名称,确认,下一步配置构建步骤:
General
输入项目名称和描述
Source Code Management
选择git,输入git项目地址,然后再添加git的账号和密码(如您的GitHub上的Project,然后添加GitHub账号)
Build Triggers
可以设置何时出发打包,如一个小时打包一次,git推送代码时打包一次等
Build
添加构建步骤,Invoke Gradle Script,选择Gradle版本,并填写Tasks:build
添加构建步骤,Execute Shell,按照蒲公英平台的文档,将打包成功的apk上传到蒲公英平台
如下所示():curl -F "file=@/var/lib/jenkins/workspace/ProjectName/app/build/outputs/apk/app-debug.apk" -F "uKey=your_ukey" -F "_api_key=your_api_key" https://qiniu-storage.pgyer.com/apiv1/app/upload
到此,成功地配置了Jenkins的Android打包环境,并实现了git仓库上项目的自动打包(点击立即构建),然后上传到蒲公英平台,提供给测试人员下载使用。后面可以继续实现Bugly符号表上传,自动化测试等功能。