1.持续集成介绍
1.1 持续集成概念
持续集成(Continuous Integration,简称CI)是一种软件开发实践,即团队开发成员经常集成他们的工作, 通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。
持续集成的目的:让产品可以快速迭代,同时还能保持高质量
1.2 持续集成的好处
# 快速发现错误
每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
# 防止分支大幅偏离主干
如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
# 更快速的发布更新
持续集成可以帮助团队更快速、更积极的发布程序和更新程序。在发布时可自动完成大量重复的工作、节省人力
Git与代码托管平台
1 Git
Git是目前世界上最先进的分布式版本控制系统
Git安装:
(1).下载安装包,下载地址:https://git-scm.com/downloads
(2).双击运行,然后按默认选项安装即可
(3).校验是否安装成功。打开命令行窗口,输入命令: git --version ,看到git版本信息表示已安装成功
2 代码托管平台
安装完成后,还需要最后一步设置,在命令行输入:
git config --global user.email "email@example.com"
git config --global user.name "Your Name”
(1).Github
是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱
国外的,受网络环境影响较大
官网:https://github.com/
(2).Gitee
即码云,是开源中国免费提供(企业版收费)
国内的,受网络环境影响较小
官网:https://gitee.com/
3 使用Gitee
(1).Gitee介绍
- 码云Gitee是开源中国开发的一款基于Git的代码托管平台,能够实现代码托管、项目管理、协作开发等
- 目前是国内最大的代码系统,目前已有超过 500 万的开发者选择码云
- Gitee和GitHub的作用和性质是类似的,Gitee优势是速度快
(2).在Gitee中创建仓库
1).点击按钮创建一个仓库
2).编辑仓库信息, 点击创建
(3).获取克隆地址并拉取代码
git clone 仓库地址
4.Git命令
# 1.本地仓库
(1).初始化本地仓库: git init(***)
(2).查看状态: git status(*****)
(3).提交至暂存区: git add filename|.(*****)
- filename: 文件名
- .: 所有文件
(4).提交至仓库: git commit -m 'message'(*****)
(5).创建分支: git branch dev(****)
(6).切换分支: git checkout dev(****)
# 2.远程操作
向GitHub提交代码, 首先需要解决的就是要有个GitHub账号, 并且可以连上GitHub, 获得授权.接下来看一下这些操作.
(1).获取远程仓库授权(GitHub+Gitee)
(3).克隆项目并提交代码
(4).回滚分为以下几种情况:
1).提交至暂存区但为提交至本地仓库(add了, 没commit)
2).提交至本地仓库但未推至远程仓库
3).推送至远程仓库实现回滚
3.Jenkins
3.1 Jenkins介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, 旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
3.2 Jenkins环境搭建
(1).JDK安装: 略
(2).安装Jenkins
1).下载最新的版本war包,官网:https://jenkins.io/
2).进入war包所在目录,命运行运行如下命令:
java -jar jenkins.war
3).在浏览器中访问http://localhost:8080/
4).进入启动页后,这里需要一个密码进行验证,密码所在的位置会在页面上标有,直接打开这个文件就可以看到密码
5).密码输入后,点击继续。此时会提示是否安装插件,我们选择第一个,安装建议的插件
6).等待插件安装完成
7).安装完成后,会提示设置用户名和密码,进行后期登录使用
8).配置完成后,提示准备就绪
9).点击按钮,即可进入首页
3.3 安装HTML Publisher插件
(1).进入首页,选择'Jenkins'后面的小图标->'系统管理'->'管理插件’
(2).输入搜索关键字,选择要安装的插件,点击‘Install without restart’安装
(3).查看安装进度
3.4 系统设置
(1).选择'Jenkins'->'系统管理'->'系统设置’
3.5 解决控制台乱码问题
如果在控制台中输出中文字符时出现乱码,则可通过以下操作来设置字符编码
(1).打开系统管理->系统设置,在'全局属性'添加'环境变量'。LANG=zh_CN.UTF-8和JAVA_TOOL_OPTIONS=- Dfile.encoding=UTF8
3.6 HTML报告样式无法显示
在部署Jenkins持续集成的过程中经常会用到HTML Publisher插件来显示测试报告。 为了测试报告样式的美观以及易读,测试报告中经常会搭配CSS和JS实现自定义的样式或动画效果。
# 问题
Jenkins中在访问有自定义样式或动画效果的测试报告时,会出现样式无法正常显示的问题。
# 原因
Jenkins为了避免受到恶意HTML/JS文件的攻击,会默认将安全策略CSP设置为:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
在此配置下,只允许加载:
Jenkins服务器上托管的CSS文件
Jenkins服务器上托管的图片文件
其他形式的内容都会被禁止:JavaScript、plugins (object/embed)、HTML中的内联样式表和引用的外站CSS文 件、HTML中的内联图片和外站引用的图片文件等等
3.7 邮件测试报告模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<div>
<h2>项目信息</h2>
<ul>
<li>项目名称:project_name</li>
<li>详细测试报告:
<a href="#"></a></li> <li>触发原因:
</li>
<li>
项目Url:<a href="${PROJECT_URL}"></a>
</li>
</ul>
<hr/>
<h2>构建日志</h2>
<div></div>
<hr/>
</div>
</body>
</html>