微服務持續整合之 程式碼上傳,拉取,和程式碼審查
微服務持續整合之 程式碼上傳,拉取,和程式碼審查
目錄一:後端程式碼上傳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 伺服器檢視