持續集成交付CICD:Jenkins使用GitLab共享庫實現前后端項目Sonarqube

目錄

一、實驗

1.Jenkins使用GitLab共享庫實現后端項目Sonarqube

2.優化GitLab共享庫

3.Jenkins使用GitLab共享庫實現前端項目Sonarqube

4.Jenkins通過插件方式進行優化

二、問題

1.sonar-scanner 未找到命令

2.npm?未找到命令


一、實驗

1.Jenkins使用GitLab共享庫實現后端項目Sonarqube

(1)已搭建GitLab共享庫

① 進入共享庫項目

② 封裝庫目錄
(2)Jenkins修改配置

①修改選項參數

②啟用SCM并保存

(3)Jenkins安裝插件SonarQube Scanner

(4) Sonarqube生成令牌

(5)Jenkins添加憑證

?(6)GitLab修改Jenkinsfile

(7)Jenkins手動構建項目

(8)Blue Ocean 查看構建成功

(9)輸出結果

(10)Sonarqube已新增項目

2.優化GitLab共享庫

(1)GitLab新建Sonar.groovy

(2) 修改Jenkinsfile

(3)Jenkins再次手動發起流水線

(4)Blue Ocean查看

3.Jenkins使用GitLab共享庫實現前端項目Sonarqube

(1)Jenkins前端項目開啟SCM

(2)添加選項參數

(3)GitLab修改Sonar.grovvy,添加主函數CodeSonar進行分支判斷,并添加子函數SonarWeb(前端)

(4)修改Jenkinsfile的“SonarScan”階段代碼,調用主函數CodeSonar

(4)Jenkins 手動發起流水線

(5)Blue Ocean查看

(6)查看日志

(7)Sonarqube已新增項目

4.Jenkins通過插件方式進行優化

(1)在Jenkins中安裝插件sonarqube scanner并安裝

(2)體統配置添加Sonarqube服務器,選擇憑據

(3) 工具新增SonarQube Scanner?

(4)使用withSonarQubeEnv DSL引入在Jenkins中配置的sonar環境

## 括號中的`mysonar`一定要與Jenkins設置頁面定義的一致。
stage("SonarScan"){steps {script {groupName = "${JOB_NAME}".split("/")[0]projectName ="${JOB_NAME}".split("/")[-1]//sonar.CodeSonar("${env.buildTool}",projectName,groupName)withSonarQubeEnv("mysonar") {sh """sonar-scanner -Dsonar.host.url=${SONAR_HOST_URL} \-Dsonar.projectKey=${projectName} \-Dsonar.projectName=${projectName} \-Dsonar.projectVersion=${BUILD_ID} \-Dsonar.login=${SONAR_AUTH_TOKEN} \-Dsonar.ws.timeout=30 \-Dsonar.projectDescription="my first project" \-Dsonar.links.homepage=http://192.168.204.8:82/${groupName}/${projectName} \-Dsonar.links.ci=http://192.168.204.15:8080/job/${groupName}/job/${projectName}/ \-Dsonar.sources=src \-Dsonar.sourceEncoding=UTF-8 \"""}}}}

(5)直接在回放中修改前端項目devops03-web-service

(6)點擊運行

(7)Blue Ocean 查看

(8)查看日志

(9)分析成功

二、問題

1.sonar-scanner 未找到命令

(1)報錯

(2)原因分析

環境變量

(3)解決方法

修改GitLab的Jenkinsfile文件

修改前:

……
sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
……

修改后:

……
/opt/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
……

2.npm?未找到命令

(1)報錯

(2)原因分析

環境變量

(3)解決方法

修改GitLab共享庫的Build.grovvy

修改前:

def NpmBuild(){sh "npm install && npm run build"}

修改后:

def NpmBuild(){nodejs("node14.16.1") {sh "npm install && npm run build"}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214204.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214204.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214204.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue學習筆記-Vue3中ref和reactive函數的使用

前言 為了讓vue3中的數據變成響應式,需要使用ref,reactive函數 ref函數使用方式 導入ref函數 import {ref} from vue在setup函數中,將需要響應式的數據通過ref函數進行包裝,修改響應式數據時,需要通過: ref包裝的響應式對象.val…

Flink之遲到的數據

遲到數據的處理 推遲水位線推進: WatermarkStrategy.<Event>forBoundedOutOfOrderness(Duration.ofSeconds(2))設置窗口延遲關閉&#xff1a;.allowedLateness(Time.seconds(3))使用側流接收遲到的數據: .sideOutputLateData(lateData) public class Flink12_LateDataC…

力扣編程題算法初階之雙指針算法+代碼分析

目錄 第一題&#xff1a;復寫零 第二題&#xff1a;快樂數&#xff1a; 第三題&#xff1a;盛水最多的容器 第四題&#xff1a;有效三角形的個數 第一題&#xff1a;復寫零 力扣&#xff08;LeetCode&#xff09;官網 - 全球極客摯愛的技術成長平臺 思路&#xff1a; 上期…

【SpringBoot教程】SpringBoot 統一異常處理(附核心工具類-ErrorInfoBuilder)

作者簡介&#xff1a;大家好&#xff0c;我是擼代碼的羊駝&#xff0c;前阿里巴巴架構師&#xff0c;現某互聯網公司CTO 聯系v&#xff1a;sulny_ann&#xff08;17362204968&#xff09;&#xff0c;加我進群&#xff0c;大家一起學習&#xff0c;一起進步&#xff0c;一起對抗…

曲線分板機主軸有何特點?如何選擇合適的曲線分板機主軸?

在現代工業領域&#xff0c;分板機主軸作為重要的機械部件&#xff0c;其性能和質量對于生產效率和產品質量具有至關重要的影響。而在這其中&#xff0c;曲線分板機主軸則因為其獨特的優勢而被廣泛應用于PCB電路板的切割和分板。面對市場上眾多的曲線分板機主軸品牌&#xff0c…

【深度學習】loss與梯度與交叉熵的關系

問的GPT3.5 模型訓練時loss與梯度的關系&#xff1f; 在深度學習模型訓練過程中&#xff0c;loss&#xff08;損失函數&#xff09;與梯度&#xff08;gradient&#xff09;之間存在密切關系。損失函數衡量模型在給定輸入上的預測輸出與實際輸出之間的差距&#xff0c;而梯度則…

Leetcode 2958. Length of Longest Subarray With at Most K Frequency

Leetcode 2958. Length of Longest Subarray With at Most K Frequency 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;2958. Length of Longest Subarray With at Most K Frequency 1. 解題思路 這一題思路上其實也很簡單&#xff0c;就是一個滑動窗口的思路&#xff0c;遍歷…

前端知識(十三)——JavaScript監聽按鍵,禁止F12,禁止右鍵,禁止保存網頁【Ctrl+s】等操作

禁止右鍵 document.oncontextmenu new Function("event.returnValuefalse;") //禁用右鍵禁止按鍵 // 監聽按鍵 document.onkeydown function () {// f12if (window.event && window.event.keyCode 123) {alert("F12被禁用");event.keyCode 0…

RNN循環神經網絡python實現

import collections import math import re import random import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2ldef read_txt():# 讀取文本數據with open(./A Study in Drowning.txt, r, encodingutf-8) as f:# 讀取每一行l…

軟件測試之缺陷管理

一、軟件缺陷的基本概念 1、軟件缺陷的基本概念主要分為&#xff1a;缺陷、故障、失效這三種。 &#xff08;1&#xff09;缺陷&#xff08;defect&#xff09;&#xff1a;存在于軟件之中的偏差&#xff0c;可被激活&#xff0c;以靜態的形式存在于軟件內部&#xff0c;相當…

【隱馬爾可夫模型】隱馬爾可夫模型的觀測序列概率計算算法及例題詳解

【隱馬爾可夫模型】用前向算法計算觀測序列概率P&#xff08;O&#xff5c;λ&#xff09;??????? 【隱馬爾可夫模型】用后向算法計算觀測序列概率P&#xff08;O&#xff5c;λ&#xff09; 隱馬爾可夫模型是關于時序的概率模型&#xff0c;描述由一個隱藏的馬爾可夫鏈…

Elbie勒索病毒:最新變種.elbie襲擊了您的計算機?

引言&#xff1a; 在數字時代&#xff0c;.Elbie勒索病毒的威脅越發突出&#xff0c;對個人和組織的數據安全構成了巨大挑戰。本文將深入介紹.Elbie勒索病毒的特征&#xff0c;有效的數據恢復方法&#xff0c;以及一系列預防措施&#xff0c;幫助您更好地保護數字資產。當面對…

線性規劃-單純形法推導

這里寫目錄標題 線性規劃例子啤酒廠問題圖解法 單純形法數學推導將問題標準化并轉為矩陣形式開始推導 實例圖解法單純形法 線性規劃例子 啤酒廠問題 每日銷售上限&#xff1a;100箱啤酒營業時間&#xff1a;14小時生產1箱生啤需1小時生產1箱黑啤需2小時生啤售價&#xff1a;2…

從零開發短視頻電商 AWS OpenSearch Service開發環境申請以及Java客戶端介紹

文章目錄 創建域1.創建域2.輸入配置部署選項數據節點網絡精細訪問控制訪問策略 獲取域端點數據如何插入到OpenSearch ServiceJava連接OpenSearch Servicespring-data-opensearchelasticsearch-rest-high-level-clientopensearch-rest-clientopensearch-java 因為是開發測試使用…

[Linux] nginx的location和rewrite

一、Nginx常用的正則表達式 符號作用^匹配輸入字符串的起始位置$ 匹配輸入字符串的結束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”&#xff0c;但不能匹配“o”?匹配前面的字…

Vue3 setup 頁面跳轉監聽路由變化調整頁面訪問位置

頁面跳轉后頁面還是停留在上一個頁面的位置&#xff0c;沒有回到頂部 解決 1、router中路由守衛中統一添加 router.beforeEach(async (to, from, next) > {window.scrollTo(0, 0);next(); }); 2、頁面中監聽頁面變化 <script setup> import { ref, onMounted, wat…

@Autowired 找不到Bean的問題

排查思路 檢查包掃描&#xff1a;查詢的Bean是否被spring掃描裝配到檢查該Bean上是否配上注解&#xff08;Service/Component/Repository…&#xff09;如果使用第三方&#xff0c;檢查相關依賴是否已經安裝到當前項目 Autowired和Resource的區別 Autowired 是spring提供的注…

圖像清晰度 和像素、分辨率、鏡頭的關系

關于圖像清晰度的幾個知識點分享。 知識點 清晰度 清晰度指影像上各細部影紋及其邊界的清晰程度。清晰度&#xff0c;一般是從錄像機角度出發&#xff0c;通過看重放圖像的清晰程度來比較圖像質量&#xff0c;所以常用清晰度一詞。 而攝像機一般使用分解力一詞來衡量它“分解被…

linux通過命令切換用戶

在Linux中&#xff0c;你可以使用su&#xff08;substitute user或switch user&#xff09;命令來切換用戶。這個命令允許你臨時或永久地以另一個用戶的身份運行命令。以下是基本的用法&#xff1a; 基本切換到另一個用戶&#xff08;需要密碼&#xff09;&#xff1a;su [用戶…

APIFox:打造高效便捷的API管理工具

隨著互聯網技術的不斷發展&#xff0c;API&#xff08;應用程序接口&#xff09;已經成為了企業間數據交互的重要方式。然而&#xff0c;API的管理和維護卻成為了開發者們面臨的一大挑戰。為了解決這一問題&#xff0c;APIFox應運而生&#xff0c;它是一款專為API管理而生的工具…