2024年C C++最全使用Jenkins搭建持续集成环境的方法(三)_jenkins+gtest(2),2024年最新大厂C C++研发岗面试复盘

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

在完成前面的系统配置后,还需要针对特定的项目进行邮件设置。

选择具体的项目,点击“配置”,进行项目配置页面,点击“增加构建后操作步骤”,选择“E-mail Notification”,如下图所示:

在上图中,在“Recipients”中填写收件人邮箱地址,即可实现发送项目构建邮件的功能了。

如果想在每次不稳定(unstable)的构建后,都发送邮件通知,则勾选“每次不稳定的构建都发送邮件通知”。

3 角色权限管理

通过使用 Role-based Authorization Strategy 插件,可以实现 Jenkins 的角色权限管理功能。

3.1 用户管理

这里需要说明一下,如果使用 svn 管理源码,那么只要提交过 svn 代码并在 Jenkins 中进行过构建,那么该用户的信息就会保留在 Jenkins 中了,如下图所示:

以此为基础,可以很方便地进行用户管理。点击上图中的某个用户名称(如 xxb),则会进入到该用户的设置界面中,如下图:

在上图中,点击“设置”,对该用户进行管理,如下图所示:

在用户设置页面,主要设置该用户的密码,然后点击“保存”,即可完成对该用户的设置操作。

此时,就可以使用该用户登录 Jenkins 了,如下图:

3.2 用户权限控制

在上一步添加了一个 Jenkins 用户之后,使用该用户登录 Jenkins 时,发现该用户有很多操作权限,这显然不利于 Jenkins 的系统安全,所以,需要对该用户进行权限控制。

3.2.1 安装插件

首先,需要安装 Role-based Authorization Strategy 插件,如下图所示:

插件安装完成后,需要重启 Jenkins。

3.2.2 全局安全设置

安装完上面的插件后,进入 Jenkins 主页中,点击“系统管理”、“全局安全配置”,进入全局安全配置页面,如下图所示:

在上图中,主要是将“授权策略”修改为“Role-Based Strategy”,即使用前面安装的插件进行用户权限控制。

之后,点击“保存”即可。

3.2.3 管理、分配角色

选择了授权策略之后,就需要进行具体的角色管理了。

进入 Jenkins 主页中,点击“系统管理”,能看到“Manage and Assign Roles”功能,如下图所示:

点击上图中的“Manage and Assign Roles”,转到具体的角色管理页面,如下图所示:

  1. 点击“Manage Roles”,进行角色管理。

首先需要新建一个角色(如developer),如下图所示:

然后,为新建的角色(developer)根据实际需要分配权限,如下图所示:

在上图中,我们为 developer 角色分配了项目构建权限、Jenkins 服务信息读取权限。(我们能够看到,admin 角色默认拥有所有权限)

点击“save”保存该 developer 角色信息。

  1. 回到“Manage and Assign Roles”页面,点击“Assign Roles”,如下图所示:

进入“Assign Roles”页面,为 Jenkins 用户分配指定的角色,如下图所示:

在上图中,我们看到了刚刚添加的新角色 developer。我们将前面创建的用户 xxb 设置为 developer 角色。

点击“save”保存设置。至此,就完成了对于用户 xxb 的权限控制。

此时,再次使用 xxb 用户登录 Jenkins,发现其权限发生了变化,如下图所示:

从上图中可以看到,xxb 用户不再拥有“创建任务”、“系统管理”等功能,这说明上述对于该用户的权限控制生效了。

4 圈复杂度

通过 CCM 插件可以实现发布代码圈复杂度报告的功能。

4.1 安装插件

首先需要安装插件 CCM,CCM 插件信息如下图所示:

4.2 生成代码圈复杂度

这里需要说明的是,Jenkins 的 CCM 插件只是一个圈复杂度报告的分析和发布工具,其本身并不具备生成代码圈复杂度的功能,所以在这里还需要一个生成圈复杂度数据的工具。

4.2.1 编译生成圈复杂度工具

检查代码复杂度的工具有很多,本文选择了 github 上的 ccm 工具,相关的 github 链接为: https://github.com/jonasblunck/ccm

按照该链接中的指导,最终编译(需要使用 vs 进行编译)出检查代码圈复杂度的程序“CCM.exe”,该程序是 Windows 程序,为了能在 Linux 运行,需要在 Linux 上安装 mono,相关命令如下:

mono-core-4.6.2-4.el7.x86_64

安装 mono 之后,就可以在 CentOS 7 上运行 CCM.exe 了。

之后,将圈复杂度检查工具的相关文件上传到 Jenkins 服务器上,圈复杂度检查工具在 Jenkins 服务器上的信息,如下图所示:

[root@ACC_APP /var/lib/jenkins/workspace/account_system_CI/ci]# l
total 56
drwxr-xr-x 2 root root    69 Aug 28 19:11 ./
drwxr-xr-x 5 root root    39 Aug 28 19:10 ../
-rw-r--r-- 1 root root   543 Aug 28 14:45 account_sys_ccm.config
-rw-r--r-- 1 root root 31232 Aug 10 08:55 CCMEngine.dll
-rw-r--r-- 1 root root 19456 Aug 10 08:54 CCM.exe
[root@ACC_APP /var/lib/jenkins/workspace/account_system_CI/ci]# 

对于上图中的几个文件,说明如下:

  • CCM.exe:编译 github 上的源代码生成的可执行文件;
  • CCMEngine.dll:编译 github 上的源代码生成的可执行文件;
  • account_sys_ccm.config:圈复杂度的配置文件,供 CCM.exe 使用;
4.2.2 编写CCM配置文件

CCM 配置文件是核心文件,CCM.exe 读取 CCM 配置文件的内容,进行具体的圈复杂度分析。

有以下两种方式来了解 CCM 配置文件的写法说明:

  1. 通过在 CentOS 7 命令行运行“mono CCM.exe”,可得到 CCM 配置文件的示例,以及相关元素的描述,如下图所示:

  1. 从 github 上获取的源码中,有一个“readme.doc”文件,在该文件中也介绍了 CCM 配置文件的元素信息描述。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

图片转存中…(img-pze1ZAT2-1715537033938)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值