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.定时构建,添加触发器
运行效果: