1.jenkins下新建一个流水线项目

2. 编写pipeline流水线脚本 

 

完整脚本:

pipeline {

    agent any

    stages {
        stage("build console all") {
            steps {
                script {
                    def starting = 'pipeline-'
                    def ending = ""
                    def job_list = [
                      "清空blackduck平台上传的历史bdio文件",
                      "安全扫描flux依赖包安装",
                      "Coverity安全扫描多job同时运行-mvn编译方式",
                      "BlackDuck安全扫描多job同时运行",
                      "BlackDuck_BinaryScan安全扫描多job同时运行"

                    ]

                    def branches = [:]
                    MAX_CONCURRENT = 1

                    //创建fifo
                    latch = new java.util.concurrent.LinkedBlockingDeque(MAX_CONCURRENT)

                    //往fifo中,填入最大个数元素
                    for(int i=0; i<MAX_CONCURRENT; i++)
                        latch.offer("$i")

                    for(int i=0; i<job_list.size(); i++) {
                        def name = starting + job_list[i] + ending
                        branches[name] = {
                            def thing = null
                            waitUntil {
                                //获取一个资源
                                thing = latch.pollFirst();
                                return thing != null;
                            }

                            try {
                                //执行job
                                build(job: name, propagate: false)
                            }

                            finally {
                                //释放一个资源
                                latch.offer(thing)
                            }
                        }
                    }

                    timestamps {
                        parallel branches
                    }
                }
            }
        }
    }
}

 

3.定时构建,添加触发器

 

 

运行效果:

 

 

更多推荐