产生背景
各个小组分别负责各个具体模块开发, 本模块独立测试虽然能够通过, 但是上
线前夕将所有模块整合到一起集成测试却发现很多问题, 想要解决就需要把很多代
码返工重写而且仍然有可能有问题, 但现在时间很可能不够了。
持续集成定义[1]
经常性、 频繁的把所有模块集成在一起进行测试, 有问题尽早发现, 这就是持
续集成。
持续集成工具
Jenkins 和Husband都可以整合 GitHub 或 Subversion。原理如下
环境搭建————基于SVN
SVN安装
下载
svnadmin create /svndir
创建svn资源仓库
[root@localhost ~]# svnadmin create /svndir
[root@localhost ~]# cd /svndir/
[root@localhost svndir]# ls
conf db format hooks locks README.txt
[root@localhost svndir]# cd conf/
[root@localhost conf]# ls
authz passwd svnserve.conf
新增用户及密码,配置权限
已经看到在仓库下面生成了三个文件
authz #权限配置文件
passwd #用户名密码文件
svnserve.conf #资源库配置文件
在passwd新增一行
yunwei = 123456
新增用户“yunwei”,密码是“123456”
在authz下新增一行
* = r #所有用户有读权限
在server.conf下定义目录,项目的根目录
这个配置文件打开下面几行前面的注释,删除最前面的空格:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository
持续集成子系统
SVN
Tomcat
Maven
Jenkins(包含SVN插件,MAVEN插件,DEPLOY TO WEB CONTAIONER 插件)
集成步骤
修改SVN配置文件
修改tomcat配置文件
root@zk-node1 conf]# vim tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-statusmanager-status"/>
解锁Jekines
安装插件
系统初始化配置
系统管理————全局安全配置
系统管理————全局工具配置(指定maven的settings配置文件和JDK的安装位置)
管理插件————安装deploy container插件
Jekines操作
创建一个新任务——————自由风格的软件项目
选择源码管理————填入URL(下载源码)————注意填写到工程目录一级
配置————填写构建信息————构建的目的是拿到war包
构建后操作——————将war包部署到tomcat中(必须有container插件)
包含操作内容:
1。填写工作空间打包后的war包名称
2。设置访问路径————context path
3。填写tomcat的用户名和密码以及访问tomcat的URL地址
配置钩子程序——————使用svn提交代码后触发钩子程序,Jenkins自动下载源码,打包部署到tomcat中
配置——————构建触发器(通过配置相应的URL地址,然后访问URL来触发钩子程序,不用再点击“”立即构建“”)
令牌是自定义的
CURL命令——————发送http请求
-X 参数: 指定请求方式
-v 参数: 显示响应结果
-u 参数: 携带用户名/密码
-H 参数: 携带请求消息头信息
curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口
号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]curl -X post -v -u admin:2f6bff33bda14baba83ba1c002045f05 -H
"Jenkins-Crumb:88a12946e07d82b3b0d567c7c4610c9a"
http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN
修改SVN钩子程序配置文件
钩子程序由 post-commit.tmpl 复制得到
这里注意不要使用任何扩展名。 如果按照我们习惯的使用.sh 扩展名则钩
子程序无法正常工作。
记得使用 chmod 命令设置为可执行权限
把原有内容注释, 加入 curl 命令
参考
- ^持续交付:用小版本不断进行快速迭代, 不断收集用户反馈信息, 用最快的速度改进优化。