• 【jenkins】pipeline控制多job顺序执行,进行定时持续集成


    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.定时构建,添加触发器

     

     

    运行效果:

     

     

  • 相关阅读:
    MongoDB 常用命令
    Java面试整理(一)
    xilinx zynqmp DisplayPort时钟检测错误
    数据库4-MGR
    SAP NetWeaver ABAP 服务器的数据库表database table暴露为CDS View
    最舒适的蓝牙耳机有哪些推荐?骨传导蓝牙耳机
    【olympic】编译qca-athdiag出现The LIC_FILES_CHKSUM does not match问题分析及解决方案
    安装客户端pymilvus
    奉加微蓝牙芯片PHY6222,支持mesh,SRAM、可选128K-8M
    SwissArmyTransformer瑞士军刀工具箱使用手册
  • 原文地址:https://blog.csdn.net/baidu_31295661/article/details/125467477