天天看點

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的鈎子配置

完~

繼續閱讀