【自动化部署】如何使用Jenkins+git 实现代码自动化部署

1、什么是持续集成?

  (1)  持续集成是一种软件开发实践,即团队开发成员常常集成他们的工做,一般每一个成员至少集成一次,也就意味着天天可能会发生屡次集成。每次集成都经过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程能够大大减小集成的问题,让团队可以更快的开发内聚的软件。php

(2)没有持续集成html

项目作模块集成的时候,发现不少借口都不通==>浪费大量时间java

须要手动去编译打包最新的代码==>构建过程不透明git

发布代码,上线,基本靠手工==>脚本乱飞web

(3)持续集成最佳实践:docker

维护一个单一的代码库vim

使构建自动化浏览器

执行测试是构建的一部分tomcat

集成日志及历史记录服务器

使用统一的依赖包管理库

天天至少集成一次

(4)jenkins介绍

Jenkins只是一个平台,真正运做的都是插件。这就是jenkins流行的缘由,由于jenkins什么插件都有 
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工做,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson

Jenkins官网:https://jenkins.io/

Jenkins下载:http://updates.jenkins-ci.org/

 jenkins的所有镜像:http://mirrors.jenkins-ci.org/status.html

因此运行jenkins 须要先安装Java运行环境;我这里使用的Java1.8版本;

要实现代码实时自动化提交,这里须要使用到git服务器 webhook功能,POST的URL设置为,http://jenkins:8080/git/notifyCommit?url=https://git.oschina.net/****/****.git,这样代码一签入,Git服务器便会请求这个地址,触发了Job。
也能够直接在浏览器上试用下,地址栏直接输入:http://localhost:8080/git/notifyCommit?url=https://git.oschina.net/****/****.git,会发现Job确实就执行了。
不过由于咱们是内部服务器,Git服务器不方便直接请求,因此只能退而求其次,定时去触发Job了。下面是每20分钟执行一次,好像最少是每分钟一次。

2、jenkins安装与配置信息:

1)、安装:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo # 下载jenkins yum包并指定位置存储

rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

2)、配置(可选,可使用默认配置信息):

vim /etc/init.d/jenkins

#修改配置

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java

/usr/local/java/bin/java    #这一行是新增自定义的java命令位置

"

配置文件/etc/sysconfig/jenkins

打开配置文件

vim /etc/sysconfig/jenkins

修改$JENKINS_USER

JENKINS_USER=”jenkins” (默认为jenkins)

也能够修改端口

JENKINS_PORT=”8080”(默认是8080端口)

3)、启动、中止、重启jenkins

/etc/init.d/Jenkins start|stop|restart 或 service jenkins start|stop|restart

查看监听端口的进程:netstat -tunlp |grep :8080 或使用ps -ef|grep jenkins 查看进程是否存在

启动成功后访问:本身服务器IP:8080

4)、访问jenkins服务及插件:

一、浏览器访问打开以下页面:

cat /var/lib/jenkins/secrets/initialAdminPassword #查看初始化密码,并复制密码到浏览器密码表单中;

二、点下一步等待安装插件,安装插件完成;我这里设置用户名:jenkins,密码:jenkins ,固然你也能够根据本身的喜好设置;

三、jenkins的插件以及配置

jenkins系统管理比较重要的就是插件管理了 ,由于jenkins的工做所有是由插件来完成。

在插件管理中,有可更新、可选插件、已安装,平常的插件安装都是在这个界面上完成的。好比为了和gitlab协同,咱们须要安装gitlab的插件。

当插件安装不上的时候,能够直接去网上下载后手动安装

下载地址:http://updates.jenkins-ci.org/

解压备份plugin.tar.gz

mv plugins /var/lib/jenkins/

chown -R jenkins.jenkins plugins/

service jenkins restart

3、jenkins界面配置

实现研发提交代码到git,jenkins就会自动检测到而且自动进行构建(合并、打包),构建完成以后将打好的包(war、jar包均可以)经过jenkins的插件传到tomcat的webapps目录下,而后重启tomcat,实现自动打包部署。

这里以jenkins+git+Gradle自动化构建Android APK包,为例:其余大同小异;

1)、首先咱们须要配置jenkins的全局配置

http://x.x.x.x:8080/configureTools/

分别配置JDK,Git,Gradle三个板块的路径。 
JDK:别名=任意,JAVA_HOME=JDK目录 
Git:别名=任意, Path to Git executable=Git安装目录\bin\git
Gradle:别名=任意,GRADLE_HOME=Gradle下载目录\Gradle\gradle-3.xx 
Gradle尽可能配置多个,由于项目的gradle版本可能不同,因此须要选择不一样的Gradle版本进行编译。

2)、全局属性:配置Android SDK目录,在打包是有可能会出现ANDROID_HOME not found的状况,因此在系统管理->系统设置->全局属性版块勾选上Environment variables选项,而后添加 ,记得更改值内的路径为本机sdk目录。 
注意:这里的键须要和本机环境变量内的Android SDK目录的键一致

3)、新建项目并配置 
新建→构建一个自由风格的软件项目,进入到新建项目后,填写名称及说明。

源码管理–>Git,输入代码托管地址Repository URL,添加帐号Credentials(Add),填写分支Branch Specifier (blank for ‘any’) 

构建触发器–>Poll SCM   如定时构建 H/15 ****  表明15分钟构建一次

构建–>Execute Windows batch command  如gralde Android程序:目录\gralde assembleRelease 表明构建正式包

保存,点击项目的当即构建。(主要的配置已经已经完成,若是还须要发送邮件或者构建完成后执行某一命令,还能够继续配置,在此再也不说明。) 

至此就介绍完了。更多插件玩法,能够在插件管理中搜索添加