前言 - 背景介绍
什么是CI/CD?
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一种面向开发和运维团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:"集成地狱")。
说人话:CI指的是自动化测试并验证需要被合并的更改,以确保这些更改符合规范,对生产环境不会造成破坏,尽早发现个人开发部分的问题。CD就是能够自动提供持续交付管道中发布版本给最终用户使用的想法。
为什么要CI/CD?
当我们的工作越来越繁忙,个人的时间越来越少的时候,总会发现自己一直在做一些重复性工作,并且很多的事情是可以通过一些代码自动化帮助我们完成的时候,这个时候就可以使用到 CI&CD 自动化集成,可以让我们的工作量有所减轻,提高工作效率,让个人时间变得多起来。
下面就正式开始Jenkins+Gitee的CI配置教程~
一、下载安装Jenkins
前期准备:Java环境
- Jenkins下载地址:Jenkins download and deployment
- 安装Jenkins有两种方式:war安装(使用命令行运行)或msi安装(作为系统服务后台运行)
- Project:github.com/kreattang/T...
Note: 这个github地址中包含的project就是本文用到的Example Maven project,大家可以自行clone或fork到自己的Gitee repo中,本地址的README里面也有关于如何在github配置travisCI的相关教程,感兴趣的同学也可以尝试配置一下。
1. war安装
(1)下载war文件

(2)cmd进入到war文件所在位置,使用命令行启动服务
java -jar jenkins.war


2. msi安装
(1)下载msi文件

(2)打开msi文件,进入安装,具体操作可以参考:Windows Installing Jenkins
二、初步配置Jenkins
1. 解锁Jenkins
(1)浏览器进入 http://localhost:8080 (具体端口号根据配置时的设定自行调整)
(2)根据所给文件位置找到password并输入

2. 安装初始推荐Jenkins插件


- 如果安装插件过程中出现fail的情况(可能由于网络不好),点击Retry,一般可以解决。

3. 创建Jenkins用户



4. 安装Gitee插件


- 下载完成后重启Jenkins(命令行或计算机服务管理),Gitee插件安装完成

如果遇到插件下载失败,可尝试手动下载再上传,参考:blog.csdn.net/weixin_4466...
5. 配置Jenkins相关环境
前往 Jenkins -> Manage Jenkins -> Global Tool Configuration

(1)JDK

(2)Git

(3)Maven
安装配置Maven教程:Maven详细安装教程

三、添加Gitee链接配置
- 前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections

- 链接名:输入
Gitee
或者你想要的名字

- Gitee 域名 URL:输入Gitee完整 URL地址:
https://gitee.com
(Gitee私有化客户输入部署的域名)

- 证书令牌:如还未配置Gitee APIV5 私人令牌,点击
Add
- >Jenkins

Domain
选择Global credentials
Kind
选择Gitee API Token
Scope
选择你需要的范围Gitee API Token
输入你的Gitee私人令牌,获取地址:Gitee 私人令牌获取ID
,Descripiton
中输入你想要的 ID 和描述即可。

- 选择配置好的 Gitee APIV5 Token

- 点击 高级,可配置是否忽略 SSL 错误(视您的Jenkins环境是否支持),并可设置链接测超时时间(视网络环境而定)

- 点击测试链接,测试上述配置是否成功,如失败请检查以上 3,5,6 步骤。

四、新建构建任务
1. 新建item
- 前往 Jenkins -> New Item , name 输入 'jenkins',选择
Freestyle project
保存即可创建构建项目。


2. General配置
Gitee链接:选择前面所配置的Gitee链接,如图:

3. 源码管理配置

(1)选择Git
(2)输入你的仓库地址
(3)点击 Advanced 按钮, Name 字段中输入 origin
, Refspec 字段输入:
ruby
+refs/heads/*:refs/remotes/origin/*
(4)添加Jenkins证书

Domain
选择Global credentials
Kind
选择Username with password
Scope
选择你需要的范围- 用户名和密码输入gitee仓库的用户名和密码,注意: 不是之前添加的 Gitee API Token ,该凭据不可用于源码管理的凭据,只用于 gitee 插件的 API 调用凭据。
ID
,Descripiton
中输入你想要的 ID 和描述,可以不填。

4. 构建触发器配置


(1)勾选Gitee WebHook触发构建
(2)进入源码管理配置中设置的Gitee项目中,进入 管理 -> WebHooks

(3)添加 WebHook,URL 填写为勾选时Jenkins提示的URL,密码填写触发器配置中生成的WebHook密码(不设密码可以不填),选择事件按需勾选即可,点击添加。


如果点击添加后,报错"URL域名不正确,请输入包含正确「域名」或「公有 IP」 的 http 地址",则按如下方案解决:
- 百度"IP"获得本机ip地址

- 用ip地址替换"localhost"

- 点击添加,显示添加成功!
5. 构建配置
(1)增加构建步骤,选择Execute Windows batch command
(Windows系统)

(2)命令处填写mvn test

五、构建项目
(1)前往 Jenkins -> My Views -> Gitee Test(上一步新建的构建任务名称)

(2)点击Build Now,可以看到JUnit test运行成功了



(3)进行Mutation Test,如下修改trityp.java(src/main/.../trityp.java) 文件中61行的内容

(4)再次Build,正如预测的一样,本次Build失败了

