This commit is contained in:
2023-04-25 15:12:38 +03:00
parent 2127aad4ad
commit b4552492bc

View File

@@ -18,34 +18,39 @@ class Platforms {
public def root() {return _root;}
public void forEach(functor, stageSuffix = "", whiteList = [], blackList = []) {
steps.print("whiteList = ${whiteList}")
steps.print("blackList = ${blackList}")
_root.Platforms.each { key, dist ->
if (dist.enabled) {
def ok = true;
def dn = key.toLowerCase()
if (whiteList.size() > 0) {
whiteList.each { l ->
if (dn.indexOf(l) < 0) {
ok = false;
steps.print("${key} skip because of whiteList")
}
}
}
blackList.each { l ->
if (dn.indexOf(l) >= 0) {
ok = false;
steps.print("${key} skip because of blackList")
}
}
if (ok) {
steps.stage ("${key}${stageSuffix}") {
functor(dist)
}
}
public void forEach(Map args, functor) {
def prefix = args.stagePrefix ?: ""
def suffix = args.stageSuffix ?: ""
filterJSON(args.whiteList ?: [], args.blackList ?: []).each { key, dist ->
//steps.print("final ${key}${suffix}")
steps.stage ("${prefix}${key}${suffix}") {
functor(dist)
}
}
}
//@NonCPS
private Boolean filterDist(name, dist, whiteList, blackList) {
if (!dist.enabled) {
return false;
}
def in_white = true, in_black = false
def dn = name.toLowerCase()
if (whiteList.size() > 0) {
in_white = false
whiteList.each { l -> if (dn.indexOf(l) >= 0) { in_white = true } }
}
blackList.each { l -> if (dn.indexOf(l) >= 0) { in_black = true } }
return in_white && !in_black
}
private def filterJSON(whiteList, blackList) {
def ret = [:]
_root.Platforms.each({name, dist ->
if (filterDist(name, dist, whiteList, blackList))
ret[name] = dist
})
return ret
}
}