pipeline post指令


一.介紹

post步驟包含的是在整個pipeline或階段完成后一些附加的步驟。post步驟是可選的,所以並不包含在聲明式pipeline最簡結構中,但這並不代表它作用不大。

通常用於異常處理,若上個階段執行失敗,則做某些操作。例如上個階段清理依賴包,判斷清理失敗后,就發送郵件進行報警並退出。

二.參數說明

參數位置:
pipelinesteps部分,根據完成狀態,做出判斷。

具體參數:

  • always:不論當前完成狀態是什么,都執行
  • changed:只要當前完成狀態與上一次完成狀態不同就執行
  • fixed:上一次完成狀態為失敗或不穩定(unstable),當前完成狀態為成功時執行
  • regression:上一次完成狀態為成功,當前完成狀態為失敗、不穩定或中止(aborted)時執行
  • aborted:當前執行結果是中止狀態時(一般為人為中止)執行
  • failure:當前完成狀態為失敗時執行
  • success:當前完成狀態為成功時執行
  • unstable:當前完成狀態為不穩定時執行
  • cleanup:清理條件塊。不論當前完成狀態是什么,在其他所有條件塊執行完成后都執行。post部分可以同時包含多種條件塊。以下是post部分的完整示例

注意:

  1. post步驟在階段中,為steps后面抒寫
  2. post步驟的每個判斷,都會匹配,而非第一個匹配了,其它就跳過了

三.使用實例

編寫簡單實例:

pipeline {
    agent any
    
    stages {
        stage('test') {
            steps {
                echo 'test'
            }
            
            post {
                always {
                    echo "post condition executed: always ..."
                }
                changed {
                    echo "post condition executed: changed ..."
                }
                aborted {
                    echo "post condition executed: aborted ..."
                }
            }
        }
    }
    }

文章編寫時,添加了regression選項的判斷,但執行報了以下錯誤,說明當前pipeline插件不支持這個選項,所以在上面例子中去掉了。

再次執行,可以看到顯示2個輸出,always每次都會顯示,因為上次失敗,本次steps的echo執行成功,就顯示了changed。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM