Jenkins Pipeline如何動態的並行任務


Jenkins Pipeline 有兩種寫法: Declarative 以及 Scripted,前一種使用了Jenkins基於Groovy實現的DSL,寫起來相對有限制;后一種可以很好的在Jenkinsfile 中使用Groovy語句。 下面記錄Scripted模式下常見的一些注意點:

1. 如何退出當前的build
    a. 中斷退出:
            currentBuild.result = 'ABORTED'
            echo "沒有項目被選中"
            return
    b. 錯誤退出
            error “錯誤信息”
    c. 不穩定退出
            unstable “信息”
 
2. 如何從一個Stage 傳值到另一個:
    env.PREVIOUSE_STAGE_VALUE = “” // 必須String
    下一個Stage 直接使用 def accept = env.PREVIOUSE_STAGE_VALUE
    或者:
    定義一個全局變量
 
3. gitlab 如何獲取指定分支后者版本的代碼?
    使用 checkout 功能,不用 git  功能
 
4. 如何切換目錄
    使用 dir 方法
 
5. 如何讀取上一個Stage 存的文件:
    def content  = readFile “path”
 
6. 如何提示用戶輸入:
    def inputStr = input message: "select project" , ok : “確認”, parameters: [extendedChoice(description: 'select projects to be compiled', multiSelectDelimiter: ',', name: 'project_name', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX', value: "$choices", visibleItemCount: choices.size())]
 

    def INPUT_PARAMS = input message: "輸入配置", ok: '確認', parameters : [
text(defaultValue: "", description: '請提供Tag的名字', name: 'tag_name'),
text(defaultValue: "", description: '請提供Tag的描述', name: 'tag_desc'),
text(defaultValue: "${output_version}", description: '請設置版本,為空則不會打Tag', name: 'custom_versions')
]

    def custom_versions = INPUT_PARAMS.custom_versions

 
7. 如何動態的並行任務:
    def tasks = [:]  //定義一個用例保存task 的 map
    tasks.”task name” = {一個閉包}
 
    parallel tasks //並行所有task


免責聲明!

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



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