Jenkins持续集成环境部署

Jenkins持续集成环境安装

概述

  1. Jenkins用来做啥?

    持续集成,软件的自动构建,测试,发布,实现自动化和流程化,提高效率,便于管理。

  2. 为什么要用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 虚拟机

  1. 下载CentOS7系统镜像,有三个选择,DVD ISOEveryThing ISOMinimal ISO。这里下载的是EveryThing ISO,桌面版的,主要是考虑到后面可能用来跑Android Studio。
  2. 在VMWare上创建虚拟机,选择上面下载的系统镜像,建议内存>=2G(在阿里云上1G1核的服务器上试过,Gradle构建的过程中奔溃了,应该是内存不够用的原因)
  3. 其它一路默认就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
  1. 解压到指定目录

     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
    
  2. 添加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
    
  3. 验证是否安装成功

     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

  1. git的安装比较简单:

    
     yum install git
    

安装的版本是 git 1.8.3.1

四、Gradle

  1. 下载gradle最新版本

    
     wget https://downloads.gradle.org/distributions/gradle-4.1-bin.zip
    
  2. 解压到指定目录

    
    mv gradle-4.1-bin.zip /usr/local/java
    unzip  gradle-4.1-bin.zip
    
  3. 添加环境变量

    
    vi /etc/profile
    // 追加:
    export PATH=$PATH:/usr/local/java/gradle-4.1/bin
    
  4. 验证是否安装成功

    
    
    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

  1. 下载Androdi Linux SDK

    
     wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz 
    
  2. 解压到指定目录

    
    tar -zvxf android-sdk_r24.4.1-linux.tgz
    
  3. 配置环境变量

    
     export ANDROID_HOME=/usr/local/java/android-sdk-linux
     export PATH=$PATH:$ANDROID_HOME/tools
     export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  4. 更新sdk

    
    android list sdk -u(如果只是命令行,而没有桌面,那么要在后面加上(注意空格): --no-ui)
    

    需要下载的内容较多,需要等待很长一段时间……

到此,Android SDK配置完毕!

  1. 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

  1. 下载Jenkins

  2. 这里选择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,不是一般的慢……)

  3. 修改端口(默认8080,一般Tomcat默认也是8080,所改为8081)

    
     vi /etc/sysconfig/jenkins
     // 修改JENKINS_PORT为8081
    JENKINS_PORT="8081"
    
  4. 修改Jenkins的用户

    安装Jenkins会默认创建一个Jenkins用户,Jenkins属于这个用户(没搞懂Linux的应用程序和用户的关系,是不是每个应用程序都属于某个用户,然后这个应用程序只能访问这个用户的文件?)

    
     vi /etc/sysconfig/jenkins
     // 修改JENKINS_USER为root
     JENKINS_USER="root"
    
  5. 启动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基本配置

  1. Configure System

    manager Jenkins->Configure System->Environment variables,增加两个环境变量

    1. Android SDK 环境路径(path/to/android-sdk/)
    2. NDK 环境路径(path/to/android-ndk)
  2. Global Tool Configuration

    manager Jenkins->Configure System-> Global Tool Configuration,添加系统工具,JDK,Git,Gradle等,可以选择本地,也可以选择让Jenkins自己安装,只需要增加对应版本即可,比较简单,对于Android,只需要添加JDK,Git,Gradle就够用了。

    1. JDK
    2. Git
    3. Gradle
  3. Configure Global Security(用户权限设置)

    manager Jenkins->Configure System->Configure Global Security

  4. Manager Users(用户管理)

    manager Jenkins->Configure System->Manager Users

八、Android 项目配置

点击New Item,选择Freestyle project,填写项目名称,确认,下一步配置构建步骤:

  1. General

    输入项目名称和描述

  2. Source Code Management

    选择git,输入git项目地址,然后再添加git的账号和密码(如您的GitHub上的Project,然后添加GitHub账号)

  3. Build Triggers

    可以设置何时出发打包,如一个小时打包一次,git推送代码时打包一次等

  4. 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符号表上传,自动化测试等功能。

原创文章 25 获赞 12 访问量 1万+

猜你喜欢

转载自blog.csdn.net/half_bottle/article/details/77920410