【精華】pipeline 並行遍歷實現多模塊

package online.cloud.node

def executeRobot = null //聲明變量,用於接收遍歷list的返回至
def labelList = ["yougou", "beijing", "shanghai", "chengdu", "xianggang"] //定義要遍歷的List

executeRobot = labelList.collectEntries { //collectEntries 對list的每個元素進行必定格式的迭代轉換,返回map
    ["執行Job ${it}": checkServices(it)] //遍歷調用checkServices()
}

def checkServices(args) {
    return { //並行執行,須要return,串行執行不須要return
        /*在scripts裏面指定node,至關於另外指定節點機
        * 在方法體中能夠寫非聲明式模塊代碼,擴展性很是強 */
        node(args) {
            stage("${args}") {
                script {
                    println("當前節點:${args}")
                }
            }
        }
    }
}

pipeline {
    agent {
        node {
            label 'master'
        }
    }
    options {
        disableConcurrentBuilds() //不容許並行執行
        timeout(time: 20, unit: 'MINUTES')//設置全局超時時間。
    }
    stages {
        stage("數據準備") {
            steps {
                script {
                    parallel executeRobot //並行執行測試,關鍵字:parallel;executeRobot變量名
                }
            }
        }
    }
}
相關文章
相關標籤/搜索