成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

保障Pipeline腳本在Devops中成功應用的四大核心

云計算
想設計復雜的pipeline腳本在devops中成功應用,我們需要從腳本的穩定性.腳本執行的超時處理.構建結果處理.對于groovy腳本的調用四個方面進行考慮。

[[429059]]

想設計復雜的pipeline腳本在devops中成功應用,我們需要從如下幾個方面進行考慮:

1.腳本的穩定性:使用異常處理機制保證在發生異常的情況下腳本能夠捕獲異常并持續運行;

2.腳本執行的超時處理:構建時需要考慮超時機制避免花費大量時間等待而浪費執行時間;

3.構建結果處理:通過異常處理機制,jenkins build的結果都是SUCCESS,如果想對build的結果或者是stage的結果進行控制分析,我們需要進一步對構建結果進行處理;

4.對于groovy腳本的調用:引入其他groovy腳本來實現某些更為復雜的功能

代碼的設計基礎樣式

寫一個腳本的通常形式是

  1. node { 
  2. stage('Build') { 
  3. // git 下載代碼 
  4. // mvn clean install 構建代碼 
  5. stage('unit Test') { 
  6. // 執行單元測試 
  7. stage('Test') { 
  8. // 執行自動化測試腳本,進行核心功能覆蓋 
  9. stage('Deploy') { 
  10. //執行運維腳本,部署程序上線 

對腳本進行穩定性處理

  1. stage('Test'){ 
  2. try { 
  3. //需要處理的代碼 
  4. }catch(err) { 
  5. //處理error的代碼 
  6. catch(exp) { 
  7. //處理exception的代碼 

腳本執行超時的處理

某些場景我們需要對腳本進行超時處理,例如maven構建超時、測試代碼執行超時等等,那么我們可以這樣設計代碼。

 

  1. try { 
  2. timeout(timeout) { 
  3. //超時處理的代碼 
  4. catch (exp) { 
  5. //捕獲超時異常,便于大家做進一步的處理 
  6. def error_msg = exp.getCauses()[0].toString() 
  7. if (error_msg.find("TimeoutStepExecution") =="TimeoutStepExecution") { 
  8. //處理邏輯 

構建結果的處理

通過使用try… catch…的處理,jenkins build的結果都是SUCCESS,如果想對build的結果或者是stage的結果進行控制,可以按照下面的方法進行處理:

build結果包括:SUCCESS, UNSTABLE,或者FAILURE (返回null ,build正在進行中)

使用變量currentBuild.result可以設置build的最終結果

currentBuild.result =‘FAILURE’//設置build結果為失敗

對各個stage的結果處理,需要使用catchError

catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {}//設置build結果為成功,而改stage結果為失敗

引入其他groovy腳本

調用groovy類中的api

  1. ClassDemo.groovy 
  2. class MyClass { 
  3. void test1() { 
  4. println("test1"
  5. static void test2() { 
  6. println("test2"
  7. return new MyClass() 

注意一定要給調用者一個返回值,即return new MyClass()返回一個實例

調用groovy腳本中的函數

  1. Demo.groovy 
  2. def fun1(){ 
  3. println("func1"
  4. def fun2(){ 
  5. fun1() 
  6. println("func2"
  7. def fun3(){ 
  8. fun1() 
  9. println("func3"
  10. return this 

同樣注意一定要給調用者一個返回值,即return this

在pipeline中調用groovy腳本

使用load引入腳本即可,代碼如下

  1. node { 
  2. def f=load ("/opt/scripts/test/Demo.groovy"
  3. f.fun1() 
  4. def f2=load ("/opt/scripts/test/ClassDemo.groovy"
  5. f2.test1() 

jenkins share libary方式

可以使用share的方法,請參考官方文檔:

https://www.jenkins.io/doc/book/pipeline/shared-libraries/

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2018-01-02 12:20:23

農業大數據農產品

2019-03-28 09:00:00

AI人工智能醫學影像

2010-03-19 09:59:20

Python urce

2020-04-06 20:11:26

區塊鏈分布式核心技術

2019-06-05 13:00:36

2010-07-19 10:05:07

jQuery

2010-11-22 15:25:08

2013-06-04 09:23:27

VDI虛擬化

2022-03-25 10:16:41

數字化轉型企業IT領導者

2021-04-12 16:00:18

工業物聯網物聯網

2011-01-05 15:43:44

2010-08-26 13:17:13

margin負值

2024-11-22 14:28:00

2021-01-11 11:17:44

區塊鏈醫療信息

2017-07-31 10:31:13

2019-10-15 08:00:00

HTTP2HTTP前端

2011-03-21 09:01:49

CSS框架

2015-07-17 09:50:16

Carthage優劣比較

2024-03-26 09:38:42

昇騰AI

2011-11-02 09:41:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区中文字幕 | 国产日韩欧美精品一区二区 | 视频一区二区在线观看 | 欧美在线视频免费 | 亚洲日韩中文字幕一区 | 欧美a在线 | 中文字幕在线二区 | 日韩在线欧美 | 中文字幕不卡在线88 | 色狠狠一区 | 国产精品伦一区二区三级视频 | 国产一区不卡在线观看 | 国产成人免费 | www.性色 | 午夜精品一区二区三区在线视频 | 在线视频一区二区三区 | 亚洲精品综合 | 亚洲性网| 毛片片| 日韩在线中文字幕 | 欧美激情精品久久久久久 | 久久999 | 中文字幕精品一区久久久久 | 久久久精品天堂 | 欧美日韩不卡 | 一区二区三区国产 | 69性欧美高清影院 | 综合久 | 日本欧美在线观看视频 | 人人干人人艹 | 成人免费视频播放 | 涩爱av一区二区三区 | 日韩欧美在 | 国产福利在线 | 国产成人精品久久二区二区91 | 天天色综 | 在线观看亚洲 | 最新中文字幕在线 | 一区二区三区四区视频 | 农夫在线精品视频免费观看 | 欧美精品在线免费观看 |