jenkins pipeline、用戶權限管理、插件下載地址更改、憑證管理、自由風格項目構建、maven項目構建、常用的構建觸發器、郵件發送、SonarQube代碼審查

CI持續集成流程

在這裏插入圖片描述
在這裏插入圖片描述

pipeline

在這裏插入圖片描述
jenkins安裝pipeline插件:
在這裏插入圖片描述
在這裏插入圖片描述
簡單使用:
在這裏插入圖片描述
查看流水線語法:
在這裏插入圖片描述
片段生成器:
在這裏插入圖片描述
2.0以後推薦使用聲明式語法:右側下拉框是一些步驟,都可以自動生成
Declarative Directive Generator:文檔
在這裏插入圖片描述

拉取代碼

使用片段生成器checkout代碼:
在這裏插入圖片描述
SCM的選項依賴於你安裝的插件:
在這裏插入圖片描述
選擇分支:
在這裏插入圖片描述
在這裏插入圖片描述
將“生成流水線腳本”複製:
在這裏插入圖片描述
生成的腳本:

checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '70892509-82d6-4997-8bda-49c80e8b7956', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.0.100:8443/svn/dm-springcloud/trunk/spring-cloud']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
pipeline {
   agent any

   stages {
      stage('checkout from svn') {
         steps {
            checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '70892509-82d6-4997-8bda-49c80e8b7956', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.0.100:8443/svn/dm-springcloud/trunk/spring-cloud']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
         }
      }
   }
}

編譯打包

在這裏插入圖片描述
mvn clean package
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
也可以寫成:

sh   'mvn clean package'

部署tomcat

需要安裝相應的插件纔會有deploy選項:
在這裏插入圖片描述
部署到tomcat:
在這裏插入圖片描述
在這裏插入圖片描述

jenkins腳本放到工程目錄

在web UI界面編寫腳本易失,一般推薦放到工程目錄下,還可以進行版本控制
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

常用的構建觸發器

觸發遠程構建

在這裏插入圖片描述

其他項目遠程通過一個地址URL來觸發當前項目的構建:

在這裏插入圖片描述

其他工程構建後觸發

其他工程構建完畢後會觸發當前工程的構建
在這裏插入圖片描述

定時構建

在這裏插入圖片描述
在這裏插入圖片描述

H/30 * * * *	H代表傳參,表示變化的意思   如:10:02  10:32  11:02...
0/30 * * * *   整點開始,每隔30分鐘執行一次,如10:00  10:30 11:00  11:30

每2分鐘構建一次:
在這裏插入圖片描述
每隔2分鐘會自動觸發構建:
在這裏插入圖片描述

輪詢SCM

會掃描整個項目的代碼,增大開銷,不推薦使用。
在這裏插入圖片描述
每隔2分鐘輪詢一次:
在這裏插入圖片描述
當倉庫中代碼有變動,jenkins2分鐘後輪詢到倉庫代碼變化,會自動觸發構建:
在這裏插入圖片描述

Git hook自動觸發構建

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

jenkins的參數化構建

在這裏插入圖片描述
jenkins添加參數:
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
腳本改造:
在這裏插入圖片描述
創建v1分支,並在代碼中做好標記:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
就會從v1分支拉取代碼:
在這裏插入圖片描述

發送構建結果到指定郵箱

在這裏插入圖片描述
在這裏插入圖片描述

安裝Email Extension Template插件

在這裏插入圖片描述

jenkins設置郵箱相關參數

在這裏插入圖片描述
sina郵箱開啓授權碼:
在這裏插入圖片描述
騰訊企業郵箱貌似不用授權碼即可配置。https://exmail.qq.com/

jenkins相關配置:
在這裏插入圖片描述
在這裏插入圖片描述
點【高級】按鈕:SSL加密,端口都是465,不使用SSL,端口是25
在這裏插入圖片描述
在這裏插入圖片描述
測試右鍵發送:
在這裏插入圖片描述

準備郵件內容

在這裏插入圖片描述
以下三個都是jenkins的全局變量:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這些全局參數都可以從如下途徑找到:
jenkins–configure system–Content Token Reference 點擊右側的?號:
在這裏插入圖片描述
這些變量可以直接在jenkinsfile腳本文件和email模板中使用。

push郵件模板:
在這裏插入圖片描述

編寫jenkinsfile腳本添加構建後發送郵件

在這裏插入圖片描述
poststages平級,放在stages後面:
stages是構建的核心流程
post是構建後操作
post可以根據stage執行的情況而選擇執行不同的代碼
在這裏插入圖片描述
post的寫法參考流水線語法:
在這裏插入圖片描述

always:無論構建成功與否,都會執行always裏面的代碼
在這裏插入圖片描述
failure:stage執行失敗後走的代碼:
在這裏插入圖片描述
successfailure就類似於java中的try...catch...
在這裏插入圖片描述
可以通過片段生成器生成emailtext中的內容:
在這裏插入圖片描述
${FILE}用於指定email郵件模板文件所在路徑
to指定收件人列表,如果是多個的話,用,隔開
下面多了個@,要注意細節
在這裏插入圖片描述

在這裏插入圖片描述

測試

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

jenkins + SonarQube代碼審查

SonarQube是用ES作爲代碼檢索的工具,所以會啓動es的服務
在這裏插入圖片描述

安裝SonarQube

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
start stop status
查看sonar啓動日誌:
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
該token是sonarqube與jenkins整合時的紐帶

jekins整合SonarQube實現代碼審查

jenkins通過SonarQube Scanner插件調用Sonar Scanner(安裝在Linux機器,可以通過jenkins自動安裝),sonar scanner就相當於一個SonarQube的客戶端
在這裏插入圖片描述
在這裏插入圖片描述

搜索:SonarQube Scanner

在這裏插入圖片描述
jenkins配置sonarqube服務器:
在這裏插入圖片描述

添加憑據:
在這裏插入圖片描述

非pipeline項目添加SonarQube代碼審查

也就是:自由風格項目和maven項目
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
構建時會自動進行代碼審查:
在這裏插入圖片描述
在這裏插入圖片描述
在sonar的UI界面也可以看到結果:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

pipeline項目添加SonarQube代碼審查

在這裏插入圖片描述
在工程中添加sonar-project.properties配置文件:
在這裏插入圖片描述
全局工具配置SonaeQube Scanner中的Name與下面的是一致的
在這裏插入圖片描述
scannerHome = tool 'sonar-scanner'
在這裏插入圖片描述
自由風格項目會自動去全局工具配置中找到scannerHome
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

小插曲

yum install java-1.80.-openjdk* -y
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

vi /etc/sysconfig/jenkins
systemctl start jenkins

yum install unzip

修改jenkins插件下載地址

jenkins有1000多個插件。
jenkins–manage jenkins–manage plugins–可選插件
在【高級】中可以看到jenkins插件下載的地址:https://updates.jenkins.io/update-center.json
點擊【可選插件】,等待頁面加載完畢
在這裏插入圖片描述
jenkins的開發目錄:
/var/lib/jenkins

/var/lib/jenkins/updates/default.json中,將jenkins官方的地址替換成清華的地址,將Google替換成baidu:
在這裏插入圖片描述
在這裏插入圖片描述
``

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

重啓jenkins:url後直接加上restart
192.168.52.30:8086/restart

安裝jenkins中文漢化插件

ps: 2.230默認已經安裝了漢化插件

在這裏插入圖片描述

jenkins用戶權限管理

搜索:Role-based
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
保存。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

jenkins憑證管理

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

maven安裝和配置

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

ps:必須是M2_HOME
在這裏插入圖片描述

jenkins能構建的項目類型

在這裏插入圖片描述

自由風格項目構建

在這裏插入圖片描述
可選插件搜索:Deploy to container
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
保存即可:
在這裏插入圖片描述
查看日誌:
在這裏插入圖片描述
查看tomcat的管理界面:
在這裏插入圖片描述
在這裏插入圖片描述

演示代碼改動後的持續集成:

在這裏插入圖片描述
拉取下來的代碼已經變成了最新的版本:
在這裏插入圖片描述
可以看到最新的內容了:
在這裏插入圖片描述

maven項目構建

搜索插件:Maven Integration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章