天天看点

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

本指南实现效果为:

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

jenkins+sonarQube+gitlab持续集成指南

  • 一、jenkins如何新建一个持续检查和集成的任务?
    • 1.1、先新建一个构建自由风格的软件项目任务
    • 1.2、配置项目git地址信息
    • 1.3、配置git超时时间
    • 1.3、构建触发器
    • 1.4、构建行为配置之Execute SonarQube Scanner配置
    • 1.5、构建行为配置之shell命令
  • 二、gitlab的钩子配置

一、jenkins如何新建一个持续检查和集成的任务?

本指南的jenkins的gitlab和sonar插件配置已经配好,这里不再赘述,详细可以自行看jenkins的系统设置或参考博客http://blog.51cto.com/damaicha/2118766

1.1、先新建一个构建自由风格的软件项目任务

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置
jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

1.2、配置项目git地址信息

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

1.3、配置git超时时间

因为服务器的代码拉取速度不是很快,而且项目的代码大小可能过大,所以需要在这里配置下git的超时时间,尽量长点。。。

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置
jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

1.3、构建触发器

因为jenkins需要感知gitlab的提交操作进行代码检测或者部署等操作,所以需要构建对应的触发器。

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

身份验证令牌自行生成一个:openssl rand -hex 10

这个可以看下方的信息知道这是用来钩gitlab的钩子(或者说钥匙)

下方勾选GitHub hook trigger for GITScm polling的意思是采用轮询的方式检测到源码的push操作触发构建。

老版本的jenkins也可以勾选这个,当gitlab的代码变动的时候出发构建,上下两种具有同样的效果。

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

1.4、构建行为配置之Execute SonarQube Scanner配置

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

其中Analysis properties填写:

sonar.projectKey=quick #项目key

sonar.projectName=quick #项目名称

sonar.projectVersion=1.0 #项目版本

sonar.language=java #项目语言

sonar.sourceEncoding=UTF-8 #编码

sonar.sources=./ #检查过滤代码

sonar.java.binaries=/var/lib/jenkins/workspace/quick1.0/ #检测的代码位置

一般web项目扫描配置(如果在sonar没有安装web扫描插件的话会报错并让你安装)

#required metadata

#projectKey项目的唯一标识,不能重复

sonar.forceAuthentication=false

sonar.login=saq

sonar.password=000000

sonar.projectKey=testuser

sonar.projectName=testuser

sonar.projectVersion=1.0

sonar.sourceEncoding=UTF-8

sonar.modules=java-module,javascript-module,html-module

#Java module

java-module.sonar.projectName=Java Module

java-module.sonar.language=java

#.表示projectBaseDir指定的目录

java-module.sonar.sources=.

java-module.sonar.projectBaseDir=src/main/java

sonar.binaries=classes

#JavaScript module

javascript-module.sonar.projectName=JavaScript Module

javascript-module.sonar.language=js

javascript-module.sonar.sources=js

javascript-module.sonar.projectBaseDir=src/main/webapp

#Html module

html-module.sonar.projectName=Html Module

html-module.sonar.language=web

html-module.sonar.sources=pages

html-module.sonar.projectBaseDir=src/main/webapp

这相当于编写了sonar-project.properties配置。

1.5、构建行为配置之shell命令

增加shell构建步骤

命令大概是根据目录打包项目并发布

自行百度。。。这里不详解

二、gitlab的钩子配置

进入需要配置项目的管理页面,设置,集成

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

弹出页面只需要配置url就够了

例子:http://{giturl}/jenkins/buildByToken/build?job={jobname}&token={token}

需要配置的就是job名称和token的值(1.3步的那个token)

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

配置完点这个可以测试一下,可以看到jenkins的任务开始构建啦!

jenkins+sonarQube+gitlab持续集成指南一、jenkins如何新建一个持续检查和集成的任务?二、gitlab的钩子配置

完~

继续阅读