From 122ab9619f7111917d98897419b8b7b32d028e7a Mon Sep 17 00:00:00 2001 From: peri4 Date: Tue, 25 Apr 2023 15:24:55 +0300 Subject: [PATCH] readme --- README.md | 38 +++++++++++++++++++++++++++++++----- src/org/SHS/Platforms.groovy | 4 ++-- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a6915ae..f9a4a5c 100644 --- a/README.md +++ b/README.md @@ -12,19 +12,47 @@ Next you should register this library in Jenkins -> System settings -> Global Pi * Default version: `master` * Project Repository: `https://git.shs.tools/SHS/jenkins_lib.git` +## API + +`org.SHS.Platforms` Class: + * `get()` - download and parse `platforms.json` file from `PLATFORMS_GIT` + * `root()` - returns root JSON object of `platforms.json` + * `forEach(func, ...)` - iterate over platforms, optional parameters: + * `func` - method to execute for each enabled platform, pass JSON element of current platform + * `stagePrefix` - prefix string for `stage` + * `stageSuffix` - sufffix string for `stage` + * `whiteList` - array of permitted names, ignored if empty + * `blackList` - array of denied names, ignored if empty + +`whiteList` and `blackList` are case-insensitive, and can be part of platform name + ## Usage +Simple: ``` @Library('SHS.Platforms') _ node { def pl = new org.SHS.Platforms(this) pl.get() pl.forEach ({ dist -> - print("iterate ${dist.docker_image}") - }, "-test") + print("works in ${dist.docker_image}") + }) } ``` -`dist` is JSON element of current platform - -`"-test"` is a stage suffix +With filter: +``` +@Library('SHS.Platforms') _ +node { + def pl = new org.SHS.Platforms(this) + pl.get() + pl.forEach ({ dist -> + print("works in ${dist.docker_image}") + }, + stagePrefix: "Build ", + stageSuffix: " soft", + whiteList: ["ubuntu", "debian", "osx"], + blackList: ["20.04", "11"] + ) +} +``` diff --git a/src/org/SHS/Platforms.groovy b/src/org/SHS/Platforms.groovy index 0fa1e72..d46b1b3 100644 --- a/src/org/SHS/Platforms.groovy +++ b/src/org/SHS/Platforms.groovy @@ -38,9 +38,9 @@ class Platforms { def dn = name.toLowerCase() if (whiteList.size() > 0) { in_white = false - whiteList.each { l -> if (dn.indexOf(l) >= 0) { in_white = true } } + whiteList.each { l -> if (dn.indexOf(l.toLowerCase()) >= 0) { in_white = true } } } - blackList.each { l -> if (dn.indexOf(l) >= 0) { in_black = true } } + blackList.each { l -> if (dn.indexOf(l.toLowerCase()) >= 0) { in_black = true } } return in_white && !in_black }