关键词:持续平台 Jenkins
一、持续平台
1.1 从开发到上线,整体流程:持续集成——>持续交付——>持续部署
持续集成

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。(只有自动化测试通过,才可以集成到主干。成功集成到主干后,也意味着可以部署上线,将涉及持续交付和持续部署)
持续交付

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
持续部署

持续部署则是在持续交付的基础上,定时地、自动地将过去的一个稳定的发布版本自动部署到生产环境里。
1.2 什么是持续?
代码定时频繁的更新,集成、交付和部署流程依次不断运行,达到有可用版本随时可以部署到生产环境。
很明显,集成、交付和部署是软件开发到发布流程中的不同阶段。那所谓的持续是相对于过去的流程提出的。那持续的概念就是,做一点就马上递交给下一个流程,这样能够尽早地发现并解决问题。
1.3 流程
1) 提交:代码提交到GitHub仓库
2)单元测试
这个过程 通常是一个针对 commit 操作的钩子,只要有提交,就会触发自动化测试,测试通过才可以推代码到主干。(这轮测试至少要有单元测试)
常见测试:
单元测试:针对函数或模块的测试
集成测试:针对整体产品的某个功能的测试,也叫功能测试
端对端测试:从用户界面直达数据库的全链路测试
3)构建
第一轮测试通过,代码可以成功合并到主干,交付。
那么接下来,就要构建(build),进入第二轮测试。但是,构建并不是绝对必须的过程,构建就是为了让源码变成可以运行的程序或代码。如果是 java、golang 项目,通常要 build 后才可以运行。但如果是 php、python,可能并没有构建过程,只要更新代码到对应的 CGI容器的工程目录就可以了。
构建过程,我们可以自己写一些脚本和接口,挂到对应的钩子里。当然,也可以用一些成熟的构建工具:(jenkins,maven,gradle)
4) 全面测试
这轮测试 ,应该是一次全面测试,除了前面提到的自动化测试,还应该包含一些无法自动化测试的部分。如果第一轮测试已经很全面(意味着前一步和第一轮测试合并了,不构建,自然无法全面测试),那么这轮测试可以作为第一轮测试的补集存在。
这里需要注意的是,测试的覆盖率。每次版本更新,更新点都应测试到位。
二、持续集成工具
2.1 持续集成工具Jenkins
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。没错,它就是一个具体的持续集成解决方案。基于 Java 实现。 可以实现:
持续版本发布/测试;
监控外部调用执行的工作;
2.2 技术组合
jenkins本身没有整合太多的功能,只能提供一个持续集成的平台,通过大量的插件,实现一系列的持续化集成的工作
1)整合GitHub或者subversion实现版本的控制
2)通过构建工具(maven,gradle)等进行项目的部署
3)通过与sonarqube的结合,实现自动化测试
4)通过与shell脚本的结合,实现部署,增量包等一系列的功能
三、环境搭建
使用的相关软件版本
centos 7
JDK 1.8
git
maven 3
gradle 3.5
tomcat
jenkins 2.107.2
3.1 JDK的安装(离线安装jdk)
1)上传jdk安装包到服务器/src/local/java,并解压到当前目录中
执行命令

2)配置环境变量

3)测试安装是否成功
java -version

*显示以上信息表上安装jdk成功
3.2 git安装
1)卸载Centos自带的git1.7.1:
通过git –version查看系统带的版本,Centos应该自带的是git版本是1.7.1
终端输入:yum remove git
2)安装所需软件包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker
3)下载git2.2.1并将git添加到环境变量中
(1)wget https://github.com/git/git/archive/v2.2.1.tar.gz
或者直接在浏览器器打开输入:https://mirrors.edge.kernel.org/pub/software/scm/git/
选择你要下载的版本,下载后上传至Linux服务器相应路径下
(2)解压:tar -zxvf v2.2.1.tar.gz
(3)终端输入:
cd git-2.7.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
(4)配置环境变量
sudo vim /etc/profile
export PATH=$PATH:/usr/local/git/bin
:wq! 保存并退出
(5)终端输入:source /etc/profile
3.3 maven安装
1)上传安装包到服务器/src/local/maven,并解压到当前目录中

2)配置环境变量

3)测试安装结果
mvn -v

3.4 gradle安装
1)上传安装包到服务器/src/local/gradle,并解压到当前目录中

2)配置环境变量

3)测试安装结果
gradle -v

3.5 Tomcat安装
1)上传Tomcat离线文件,并创建Tomcat安装路径并解压

2)配置Tomcat
通过查看Tomcat的cataline.sh文件中我们看出,Tomcat建议我们对Tomcat个性化配置通过在bin目录下新建一个setenv.sh进行参数上的配置

配置/src/local/tomcat/jenkens/apache-tomcat-8.0.51/conf目录下的server.xml配置文件
一共修改以下三处的端口:

3)设置防火墙

4)启动Tomcat

访问localhost:1314,出现以下页面。

3.6 Jenkins的部署

2)上传到服务器
将Jenkins上传到Tomcat的webapps目录下
3)配置Jenkins目录
Jenkins默认的工作目录位于用户目录下的.jenkins中,在启动脚本上配置Jenkins的目录。
4)Jenkins初始化
在配置结束后,重启Tomcat服务器,查看Tomcat的运行日志

访问地址:http://服务器的ip:1314/jenkins/

其中为了安全,需要到Jenkins地址提示的路径下获取密钥填写到网页中


将获取的密码填在输入框里,点击继续
安装插件

建议安装推荐的插件,安装失败的后期可以单独安装。
创建登录账户,默认为admin

到此,就可以开始使用Jenkins了

四、Jenkins系统初始化配置
在Jenkins中,常用配置主要为以下三部分:

1)全局安全配置

如果需要进行权限上的管理,可以开启安全矩阵功能进行对用户权限的控制

2)全局工具配置
主要把在服务器上设置的一系列的工具目录配置到Jenkins当中;而且必须使用绝对路径,非必须情况下,不勾选自动。

3)管理插件

根据需要可以在可选插件中,搜索进行直接安装。安装失败解决办法
在这里,以deploy to container插件为例,他的功能为让Jenkins自动把构建的项目部署到服务器中间件当中,它是非必须插件,可以使用shell脚本代替完成。
持续集成系统的组成
由此可见,一个完整的构建系统必须包括:
1、一个自动构建过程,包括自动编译、分发、部署和测试等。Maven或者Gradle(针对APP)
2、一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。git
3、一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器。jenkins
参考:
ant和maven的区别:
https://blog.csdn.net/jdliyao/article/details/80076845
https://www.cnblogs.com/straybirds/p/11605406.html
网友评论