【09】Jenkins:Pipeline 補充

寫在前面的話html

 

咱們在使用普通的構建任務的時候使用了 Sonar 作代碼質量管理,也使用了 Publish Over SSH 插件中更新上線,可是咱們在 Pipeline 怎麼使用他們呢。java

若是你沒有查看以前的 Sonar 章節,建議倒回去專門看一遍:node

https://www.cnblogs.com/Dy1an/p/11198822.htmlgit

不然有些概念沒法理解!ssh

 

 

Pipeline 中使用 Sonarmaven

 

咱們操做的前提都是以及安裝了 Sonar,具體怎麼安裝能夠參考前面的章節。工具

1. Sonar 中配置 Token:ui

生成 Token,注意該 Token 只顯示一次,注意保存:url

 

2. 在 Jenkins 系統管理 --> 系統設置中配置 Sonar,若是你跟着前面章節作,這裏應該是配置了的。spa

 

3. 新建 Pipeline 任務:

 

 

3.  接下來即是操做的重點,配置 Pipeline:

在這以前,咱們須要知道幾個重點,Sonar 在代碼掃描的時候會用到:

 

【1】Sonar 掃描工具 Sonar Scaner:系統管理 --> 全局工具配置

 

【2】Sonar 的認證:系統管理 --> 系統設置

固然,這兩個配置咱們均可以自動生成語法來造成,可是咱們得須要知道他的原理,咱們後續在 Pipeline 中使用 Sonar 其實就是注意依賴於這兩個。

在流水線語法中,咱們先生成 Sonar Home 的路徑:

生成 Sonar 認證的語法:

經過 withSonarEnv 經過對應的 Token 可以生成認證語法。

此時,咱們就能夠編寫整個 Pipeline 中使用 Sonar 的方法:

這是最終 Sonar Pipeline 的基本寫法:

node { stage("拉取代碼"){ echo 'STEP 1:Clone code' git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git' } stage('代碼質量檢測') { echo 'STEP 2:Sonar code check'
        // 獲取 Sonar Scaner 家目錄並賦值給變量 def SonarScannerHome = tool name: 'xxxx' withSonarQubeEnv(credentialsId: 'xxxx') { sh "${SonarScannerHome}/bin/sonar-scanner -X "+
            "-Dsonar.host.url=http://192.168.10.202:9000 " +
            "-Dsonar.language=java " + 
            "-Dsonar.projectKey=Pipeline-Sonar-Test " + 
            "-Dsonar.projectName=Pipeline-Sonar-Test " + 
            "-Dsonar.sources=./ " + 
            "-Dsonar.sourceEncoding=UTF-8 " + 
            "-Dsonar.java.binaries=./ " } } }

紅色 xxxx 部分須要替換成爲本身生成的。

固然,咱們其實能夠將驗證直接寫爲 withSonarQubeEnv('Sonar') ,Sonar 是咱們添加驗證時候上圖中的 Name 屬性。

至於後面 Sonar 掃描的語法,其實就是咱們以前普通任務掃描時候的參數。具體含義能夠回去看以前的章節。

 

4. 查看構建結果:

Sonar 中查看:

至此,Pipeline 中使用 Sonar 到這裏完成。

 

 

Pipeline 中使用 Publish Over SSH


在新版本的 Publish Over SSH 插件中已經支持了 Pipeline,這意味着,咱們在語法生成器中能夠直接生成:

 

最終生成的語法以下:

配置示例:

node { stage("拉取代碼"){ echo 'STEP 1:clone code' git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git' } stage("打包代碼"){ echo 'STEP 2:code package' withEnv(['JAVA_HOME=/data/jdk7']) { sh '/data/maven/bin/mvn -e clean package -U -Dmaven.test.skip=true -Ptest' } } stage("上線發佈"){ echo 'STEP 3:deploy package' sshPublisher(publishers: xxxx) } }

紅色 xxxx 部分爲本身環境的配置,構建後在 Blue Ocean 中查看輸出:

 

 

Pipeline 中觸發另一個 Job

 

在語法生成器中,咱們能夠選擇 build a job 進行添加:

 

 

小結

 

固然還有一些其餘用法,我這裏只列舉了一下經常使用的用法,至於其餘的用法,後續用到的時候再來增長。 

相關文章
相關標籤/搜索