CI/CD
CI (continuous integration-CI) -- 持续集成
-
代码合并,构建,部署,测试都在一起,不断的执行的过程,并对结构反馈。
-
CD(continuous Deloyments)-- 持续交付
-
把代码部署到测试环境,预生产环境。
-
-
CD(continous Delivery)-- 持续部署
-
将最终的产品发布到生产环境,给用户使用。
-
-
实现持续集成/持续发布的产品
-
开发(git) -->git远程仓库-->jenkins(git+jdk+tomcat+maven打包+测试)-->发布到tomcat服务器
-
-
jenkins
-
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。 意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到web容器中。
-
Jenkins
Jenkins概述
是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。 jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。jenkins构建工具有Maven、Ant、Gradle。
Jenkins目标
是监控软件开发流程 快速显示问题 提高开发效率 过程控制
Jenkins特性
-
易于安装
-
不需要安装、不需要数据库,只需通过java -jar jenkins.war或部署到一个servlet容器中
-
-
易于配置
-
所有的配置都可能通过jenkins提供的web界面完成,当然如果你喜欢,也可以通过手动修改xml文件进行配置
-
-
测试报告
-
生成JUnit或TestNG的测试报告.集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
-
-
文件识别
-
jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包
-
-
分布式构建
-
支持Jenkins能够让多台计算机一起构建/测试。
-
-
插件支持
-
jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件
-
-
任务(Job)和构建(build)
-
任务:(Job)是Jenkins的一个执行计划,是一系列操作的集合。 构建:是Jenkins的任务的一次运行。
-
-
工作流程图
-
开发者检入代码到源代码仓库。
-
CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。
-
CI系统会在对应的工作区内执行构建过程。
-
(配置如果存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。
-
(配置如果存在)如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。
-
CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。 Jenkins就是这么一个CI系统。之前叫做Hudson。
Jenkins实战案例
环境
-
centos7
-
github,gitee,gitlab
-
192.168.183.101 部署jenkins(4\6\8G)
-
192.168.183.100充当tomcat网站服务器
-
关闭防火墙\关闭selinux\配置了yum源(base,epel 阿里源)
1、安装相关工具
1,mave安装
要在java环境下才能用,下面有安装jdk
-
2,下载 maven3.8.8 包
-
https://dlcdn.apache.org/mave选择自己需要的maven版本
-
[root@yt ~]# wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
也可以下载好直接上传到linux中
- 3,解压后不用安装,直接放到/usr/local/下
[root@yt ~]# tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /usr/local/
[root@yt ~]# mv /usr/local/apache-maven-3.8.8/ /usr/local/maven
- 4,配置环境变量
[root@yt ~]# vim /etc/profile.d/jenkins_tools.sh
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin
export MAVEN_HOME=/usr/local/maven
export PATH=${MAVEN_HOME}/bin:$PATH
- 5,刷新环境变量
[root@test8 ~]# source /etc/profile.d/jenkins_tools.sh
2,部署git
- 1.安装依赖包
[root@test8 ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker fontconfig -y
- 2.git官网下载最新版本GIT
[root@test8 ~]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
也可以下载好上传到linux中
- 3.安装git
源码安装
[root@test8 ~]# tar xf git-2.9.5.tar.gz
[root@test8 ~]# cd git-2.9.5/
编译源码包,安装在/usr/local/git目录下
[root@test8 git-2.9.5]# make prefix=/usr/local/git all
时间会有些久!!
安装包
[root@test8 git-2.9.5]# make prefix=/usr/local/git install
- 4,修改环境变量 -- 更新git的路径,从用户主目录下的
bin
目录 修改到 /usr/local下面
编辑/etc/bashrc文件
[root@test8 git-2.9.5]# vi /etc/bashrc
最下面添加:
PATH=$PATH:$HOME/bin:/usr/local/git/bin
-
关于bashrc和profile
-
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.
-
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
-
- 5,刷新环境变量
[root@test8 git-2.9.5]# source /etc/bashrc
- 6,测试是否安装成功:
[root@test8 git-2.9.5]# git --version
git version 1.8.3.1
- 7,如果你查询的是低版本,有可能是系统YUM安装的.yum卸载之后即可.
[root@test8 git-2.9.5]# yum remove git.x86_64 [root@test8 git-2.9.5]# source /etc/bashrc [root@test8 git-2.9.5]# git --version git version 2.9.5</