1. 程式人生 > 其它 >微服務持續整合之 程式碼上傳,拉取,和程式碼審查

微服務持續整合之 程式碼上傳,拉取,和程式碼審查

微服務持續整合之 程式碼上傳,拉取,和程式碼審查

目錄

一:後端程式碼上傳gitlab

登入gitlab,新建兩個專案,一個tensquare_font用於前端,一個tensquare_back用於後端


進入idea的後端專案,將整個後端專案提交到本地


選擇整個專案,右擊--->Git--->Repository--->Remotes


在彈出的對話方塊,如果有遠端地址,則點選 減號- ,先刪除,然後在點選 + 加號,新增新的倉庫地址

倉庫地址的URL,為gitlab上,後端專案的http 方式的url地址


然後,在將後端專案推送到gitlab上


可以在gitlab上的後端專案檢視到我們剛才推送的專案



二:windows本地安裝TortoiseGit 提交前端程式碼

連結:https://pan.baidu.com/s/1Dg2lGS1lR_3wkMN_hFGobw?pwd=x8pt
提取碼:x8pt

TortoiseGit為安裝包,TortoiseGit-LanguagePack 為語言包


安裝TortoiseGit,安裝時,全部預設即可

安裝完畢後,跳出對話方塊,要我們選擇語言。此時只有English,所以,我們先點選取消


安裝中文包,還是全部預設


找到前端的專案資料夾右擊,---->TortoiseGit---->設定


遠端-->配置遠端gitlab倉庫的名字,和URL(URL為gitlab上,前端專案的http方式的url)


配置好遠端倉庫後,再次右擊前端專案---->TortoiseGit--->推送


確認推送的遠端倉庫,無誤後點擊確認


輸入gitlab的使用者名稱和密碼


點選專案,右擊---->Git 提交到master


右擊專案,-->TortoiseGit-->推送 ,將本地的專案推送到gitlab上


在gitlab的前端專案tensquare_font,已經可以看到我們推送的前端專案了



三:從gitlab拉取原始碼

在Jenkins新建一個專案,專案名tensquare_back,選擇pipeline的方式


選擇引數化構建This project is parameterized --->ADD--->String Parameter

Name: branch

Default Value: master

Description: 請輸入分支


使用scm方式


在idea裡編寫Dockerfile檔案(如果原來有,修改或刪除),並提交

//定義git憑證
def git_url="[email protected]:my_group/tensquare_back.git"
//定義git的url
def git_auth="fc529390-8711-4c3a-894e-fd77845bf5e4"


node {
    stage('pull code'){
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
    }
}

在Jenkins上,構建後端專案


拉取程式碼,構建成功,並且可以在Jenkins伺服器器上檢視到專案

在/var/lib/jenkins/workspace目錄下,可以看到專案目錄tensquare_back



四,提交到SonarQube 程式碼審查

修改tensquare_back專案,新增選擇引數

This project is parameterized--->Add Parameter--->Choice Parameter ?


填寫引數名和引數可選項

project_name:   projeckt_name

Choise:  tensquare_eureka_server
					tensquare_zuul
					tensquare_admin_service
					tensquare_gathering
					
Description: 註冊中心
							服務閘道器
							認證中心
							活動微服務					

在idea 的 每個專案(除了common工具) 的項根目錄下,新增sonar-project.properties檔名不要寫錯名字不要寫錯。

eureka 專案的如下。 每個專案要注意修改 projeckKey 和 projectName,修改為和每個專案一樣

# must be unique in a given SonarQube instance
sonar.projectKey=tensquare_eureka_server
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=tensquare_eureka_server
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.exclusions=**/test/**,**/target/**
sonar.java.binaries=.

sonar.java.source=1.8
sonar.java.target=1.8
#sonar.java.libraries=**/target/classes/**

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

修改Jenkinsfile 構建指令碼新增程式碼檢查步驟

//定義git憑證
def git_url="[email protected]:my_group/tensquare_back.git"
//定義git的url
def git_auth="fc529390-8711-4c3a-894e-fd77845bf5e4"


node {
    stage('pull code'){
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
    }
    stage('check code'){
            //定義SonarQubeScanner工具,要和Jenkins的全域性工具配置裡的一致
            def scannerHome = tool 'sonar-scanner'
            //引用SonarQube系統環境
            withSonarQubeEnv('sonarqube') {
            sh """
                cd ${project_name}
                ${scannerHome}/bin/sonar-scanner
               """
               }
    
    }
}

將更改後的sonar-project。properities和Jenkinsfile 進行提交


構建後,多了 檢查程式碼 步驟


四個服務都構建後,登入sonarqube 伺服器檢視