当前位置:首页 > 技术分析 > 正文内容

第五篇 Jekins集成Gitlab代码质量扫描

ruisui883个月前 (01-31)技术分析12

GitLab + Jenkins集成
用户提交并推送代码至GitLab时,说明代码已经更新,期待和此GitLab关联的Jenkins能够开始持续集成和构建以及部署等流水线的执行,这时就可以使用GitLab的Webhook进行设定。

操作步骤如下

创建Gitlab私人令牌
安装Gitlab插件
添加Gitlab API令牌凭据
添加Gitlab账号凭据
配置Gitlab链接信息
配置全局工具
创建自由风格任务
执行任务


一、创建Gitlab私人令牌

  • 点击 右侧个人头像,下拉中点击 Setting(设置),并在 设置界面 中点击 私人令牌
  • 输入 令牌名称 并勾选 api 范围,点击 创建个人令牌

点击创建后,提示个人令牌,一定要先保存好,一刷新页面就没了。

这里可以撤销,删除token,如果该token已经关联到Jenkins,要删除该token,要连带删除Jenkins里的GitLab API token,否则Jenkins里的GitLab API token失效不能用。

二、安装Gitlab插件

  • 在 Jekins首页,点击左侧 Manage Jenkins,点击 Manage Plugins(插件管理)
  • 在 Available plugins(可选插件) 中 筛选Gitee,点击安装,成功之后 重启Jenkins服务

三、添加Gitlab API令牌凭据

  • 在 Jekins首页,点击左侧 Manage Jenkins,点击 Manage Credentials(凭据管理)
  • 在 全局 下拉中点击 Add credentials(添加凭据)
  • 选择 Gitlab API 令牌 类型,输入 Gitlab私人令牌,点击 Create
  • 添加成功

四、添加Gitlab账号凭据

  • 在 Jekins首页,点击左侧 Manage Jenkins,点击 Manage Credentials(凭据管理)
  • 在 全局 下拉中点击 Add credentials(添加凭据)
  • 选择 Username with password 类型,输入 Gitlab账号和密码,点击 Create
  • 添加成功

五、配置Gitlab链接信息

  • 在 Jekins首页,点击左侧 Manage Jenkins,点击 Configure System(系统管理)
  • 输入 Gitlab 链接信息,选择 私人令牌,点击 测试链接,成功之后,先点击 应用,最后点击 保存

六、配置全局工具

6.1、配置工具入口

  • 在 Jekins首页,点击左侧 Manage Jenkins,点击 Global Tool Configuration(全局工具管理)

6.2、配置JDK

6.3、配置Git执行路径

6.4、配置SonarQube Scanner

6.5、配置Maven

6.6、配置NodeJS

对应操作系统中也需要安装Git,下图是Windows操作系统安装信息

七、创建自由风格任务

7.1、创建任务

  • 在 Jekins首页,点击左侧 新建Item(新建任务)
  • 创建一个自由风格的项目

7.2、填写基础信息

  • 在 General 中输入描述
  • 在 General 中输入自定义的工作空间

自定义的工作空间为:E:\work\Jenkins\workspace\com-luckyun2.0\com-luckyun-base

  • 拉取代码效果图

7.3、配置Gitlab代码拉取信息

  • 在 源码管理 中输入Gitlab信息

7.4、配置自动触发构建信息

不需要自动构建时,可以省略此项配置

7.4.1、GitLab Webhook特性

在GitLab的工程项目中,使用Webhook可以使得使用者在推送代码或创建Issue的时候可以触发一个事前配置好的URL,而推送代码还是创建Issue,抑或是合并请求,使用者可以自行在GitLab中进行定制,GitLab会向设定的Webhook的URL发送一个POST请求。整体来说,Webhook指的是用户定义的HTTP回调,GitLab的Webhook在使用上通常具有如下特性:

  • 由某些事件所触发,比如提交代码或者推送代码
  • 一般会触发用户定义的URL,事件触发后,由GitLab发送HTTP请求
  • Webhook可以从外部更新或者部署
  • 在GitLab CE版本中可以对每个项目进行设定,在EE版本中可以对每个项目或者每个组Group进行设定
  • 设定方式:项目的 Settings Webhooks

7.4.2、Jekins中配置构建触发器

  • 在 构建触发器 中选择推送到Gitlab时构建,并选择触发事件
  • 在高级中生成秘密令牌

7.4.3、Gitlab中配置webhook

  • 点击 Settings,点击 Integrations,输入Jekins 构建时的URL和密码令牌
  • 点击添加webhook

这里的URL就是Jekins中配置触发器时的获取
token的配置同理

7.4.4、Gitlab验证结果

  • 使用Webhook所提供的Test按钮,进行结果的正确性验证
  • 验证之后结果信息如下所示

至此,当开发人员通过Gitlab 推送、标签推送或合并请求时,会自动触发Jenkins构建任务。

7.5、配置代码分析信息

  • 在 Build Steps 中 增加 Execute SonarQube Scanner 构建步骤,输入 sonar分析属性 信息
  • Analysis properties配置信息
    • Java

sonar.projectKey=com-luckyun-base2.0
sonar.projectName=微服务框架Base2.0
#sonar.projectVersion=2.0
# sources code path
sonar.sources=.
# binaries code path
sonar.java.binaries=.
#sonar.java.binaries=src
#sonar.sources=src
#sonar.exclusions=**/test/**,**/target/**,*.xml
sonar.java.source=1.8
sonar.java.target=1.8
#sonar.libraries=module2/lib
sonar.language=java
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
sonar.scm.disabled=true
sonar.ce.javaOpts =-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.search.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
    • Js
sonar.projectKey=test-frontend
sonar.projectName=Test Frontend
#sonar.projectVersion=1.0
sonar.sources=.
#sonar.sources=src
#sonar.tests=src
#sonar.inclusions=src/**/*
#sonar.exclusions=src/**/*.spec.js,src/**/*.test.js
sonar.language=js
sonar.sourceEncoding=UTF-8
sonar.scm.disabled=true
sonar.ce.javaOpts =-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.search.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError


7.6、保存

  • 最后,先点击 应用,再点击 保存

八、执行任务

8.1、从列表页启动

  • 在 Jekins首页,在对应任务列表中选择对应任务执行

8.2、从详情页启动

  • 在 Jekins首页,在对应任务列表中 点击任务进入任务详情界面,点击 Build Now 执行任务

九、SonarQube扫描结果

  • 由任务详情页,进入 SonarQube平台
  • 项目列表
  • 项目总览

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/608.html

分享给朋友:

“第五篇 Jekins集成Gitlab代码质量扫描” 的相关文章

Git 分支管理策略汇总

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。Git flow在这种模式下,主要维护了两类分支...

一套代码,多端运行——使用Vue3开发兼容多平台的小程序

介绍Vue3发布已经有一段时间了,从目前来看,其生态还算可以,也已经有了各种组件库给予了支持,但是不管是Vue3还是Vue2都无法直接用来开发小程序,因此国内一些技术团队针对Vue开发了一些多端兼容运行的开发框架,今天来体验一下使用Taro来体验一下使用Vue3开发多平台运行的小程序,以便于兼容各大...

精品微信小程序在线考试系统+后台管理系统|前后...

《微信小程序在线考试系统+后台管理系统|前后分离VUE》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等本系统包含微信小程序前台和Java做的后台管理系统,该后台采用前后台前后分离的形式使用Java+VUE微信小程序——前台涉及技术:WXML 和 WXSS、JavaScript...

千智云低代码平台 v2.0.6发布「平台升级」

【平台简介】千智云低代码应用平台是一款低代码开发+低代码PaaS+SaaS应用中台为一体的应用平台。平台提供了多种应用场景功能及应用组件,满足各种应用的基本实现,可以使用低代码开发的方式,定制化的开发软件项目,并使用平台提供的各种功能,提供了大多数业务场景的支持。也可以将开发的应用发布到平台,成为S...

原生微信小程序打包成安卓/IOS应用!#小程序开发

原生微信小程序打包成公。好消息,微信小程序可以直接打包成APP了你们知道吗?微信团队近日开发了一个多端开发平台。多端据文档描述,多端开发框架是支持使用小程序原生语法开发移动端应用的框架。开发者可以一次编码分别编译为小程序安卓以及iOS应用,实现多端开发。我们进入多端框架开发的文档,来看看怎么使用微信...

面试官:如何关闭一个 TCP 连接?

今天聊一个比较轻松的问题:如何关闭一个 TCP 连接?可能大家第一反应是「杀掉进程」不就行了吗?是的,这个是最粗暴的方式,杀掉客户端进程和服务端进程影响的范围会有所不同:在客户端杀掉进程的话,就会发送 FIN 报文,来断开这个客户端进程与服务端建立的所有 TCP 连接,这种方式影响范围只有这个客户端...