日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

createprocess失败代码2_DevOPS | 基于sonarqube、jenkins和gitlab的持续集成代码检查

發(fā)布時(shí)間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 createprocess失败代码2_DevOPS | 基于sonarqube、jenkins和gitlab的持续集成代码检查 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在持續(xù)集成過(guò)程中,針對(duì)代碼的靜態(tài)檢查一般有兩個(gè)時(shí)間點(diǎn):一是提交代碼的時(shí)候、二是提交merge request的時(shí)候,如果代碼檢查不通過(guò),則可以直接拒絕此次代碼提交或者合并。下面我們介紹下在常見(jiàn)的devops工具鏈sonarqube、jenkins和gitlab下,實(shí)現(xiàn)在merge request提交的時(shí)候進(jìn)行代碼檢查的方法。

jenkins端的配置

首先,我們?cè)趈enkins中安裝如下幾個(gè)插件:

  • gitlab plugin: https://wiki.jenkins-ci.org/display/JENKINS/GitLab+Plugin。此插件的主要作用是與gitlab集成,可以在代碼提交、merge request創(chuàng)建等情況下觸發(fā)jenkins進(jìn)行構(gòu)建,簡(jiǎn)單講,就是在gitlab的webhook下觸發(fā)jenkins構(gòu)建
  • sonarqube scanner for jenkins: http://redirect.sonarsource.com/plugins/jenkins.html。此插件的作用是調(diào)用sonar scanner進(jìn)行代碼掃描,并可以將jenkins構(gòu)建的結(jié)果以comments的形式添加到merge request中。從而方便后續(xù)code reviewer的查看。
  • sonar quality gates plugins: https://github.com/jenkinsci/sonar-quality-gates-plugin/blob/master/README.md。此插件的作用是讀取一個(gè)sonar project的quality gates結(jié)果,如果是失敗,則更改jenkins 構(gòu)建的結(jié)果為失敗或者不穩(wěn)定。

安裝完成之后,我們需要在gitlab端創(chuàng)建一個(gè)token供jenkins使用:登錄gitlab之后,點(diǎn)擊個(gè)人頭像那個(gè)地方,在settings頁(yè)的access token創(chuàng)建token,注意至少勾選api那的復(fù)選框。

另外我們需要在sonarqbue端創(chuàng)建一個(gè)token供jenkins使用:登錄sonarqube后,點(diǎn)擊個(gè)人頭像那個(gè)地方,在My Account頁(yè)的tokens創(chuàng)建token。

然后我們進(jìn)入jenkins的系統(tǒng)管理-系統(tǒng)設(shè)置,找到gitlab的配置塊:

找到quality gates - sonarqube的配置塊:

找到sonarqube server的配置塊:

接下來(lái),我們先建一個(gè)自由類型的項(xiàng)目,關(guān)鍵的配置如下:

然后點(diǎn)擊Advanced按鈕,為本jenkins的構(gòu)建生成一個(gè)token:

在構(gòu)建觸發(fā)器的地方,我們只勾選Opened Merge requests,也就是merge request創(chuàng)建的時(shí)候進(jìn)行構(gòu)建,大家注意截圖中有個(gè)webhook的url,該url后續(xù)需要填入到gitlab中。

在構(gòu)建這個(gè)地方,我們選擇execute sonarqube scanner選項(xiàng)。gitlab在發(fā)往jenkins的hook中會(huì)發(fā)送一些變量供我們?cè)趈enkins中使用,大家可以參考:https://github.com/jenkinsci/gitlab-plugin#add-a-note-to-merge-requests,如下是個(gè)完整變量的截圖:

在構(gòu)建后操作,我們?cè)黾恿?項(xiàng):

大家注意下:第一個(gè)是Quality Gates Sonarqube Plugin,這個(gè)讀取代碼掃描后的結(jié)果,如果分析失敗也就是沒(méi)有通過(guò)sonar的質(zhì)量門,則此次構(gòu)建的結(jié)果為FAILED。第二個(gè)是把此次構(gòu)建的結(jié)果以note的形式添加到gitlab的merge request中。

到此,jenkins的配置完成。

gitlab端配置

我們進(jìn)入gitlab的項(xiàng)目后,點(diǎn)擊settings-integration,也就是給項(xiàng)目添加一個(gè)webhook,hook的地址就是上面構(gòu)建中出現(xiàn)的url,token是點(diǎn)擊advanced后創(chuàng)建的token,觸發(fā)器我們只選擇Merge request events好了,配置如下:

驗(yàn)證

下面我們?cè)趃itlab的項(xiàng)目里面,創(chuàng)建一個(gè)merge request,之后,就可以在jenkins端看到觸發(fā)了sonarqube的代碼掃描,并在掃描完成之后,根據(jù)是否通過(guò)sonar的quality gates,把成功或者失敗的信息添加到了merge requests的note中:

總結(jié)

文章介紹使用jenkins和sonarqube做基于gitlab的merge request的代碼靜態(tài)檢查方法,實(shí)用性高。文章介紹的集成方法,除可用于代碼檢查外,同樣可以用于與gitlab集成的自動(dòng)化測(cè)試、性能測(cè)試等,建議大家掌握。

另外一個(gè)擴(kuò)展點(diǎn),就是如果jenkins的構(gòu)建不過(guò),直接強(qiáng)制關(guān)閉gitlab的merge request,而不僅僅是添加一個(gè)note。

總結(jié)

以上是生活随笔為你收集整理的createprocess失败代码2_DevOPS | 基于sonarqube、jenkins和gitlab的持续集成代码检查的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。