我想删除以AAA开头的Jenkins作业列表(例如)
当我用显式字符串做它很好用
if (item.name ==~ /AAA.*/){ item.delete() }
但是,当我尝试从Jenkins Build属性获取正则表达式时,我失败了,并且if没有被调用…
import hudson.model.* import hudson.node_monitors.* import hudson.slaves.* import java.util.concurrent.* jenkins = Hudson.instance def thr = Thread.currentThread() def build = thr?.executable String REGEX = build.environment.get("Include_Regex") println "REGEX is " + REGEX for (item in jenkins.items){ println("\t ${item.name}"); println("\t ${item.name.getClass()}"); if (item.name ==~ REGEX){ item.delete() println("TEST"); } }
运行它时,我会得到所有作业的列表:在工作区中构建/ var / lib / jenkins / jobs / Bulk_Delete_Job / workspace
REGEX is /AAA.*/ AAA_test_1 class java.lang.String AAA_test_2 class java.lang.String AAA_test_3 class java.lang.String Bulk_Delete_Job class java.lang.String ConfiguredJob class java.lang.String JobZ class java.lang.String TEST_SCM class java.lang.String
但是什么也不会被删除/不会打印“ TEST”-> if永远都不是…。
需要协助,谢谢!
字符串不应该包含斜杠-使用AAA。代替/AAA./。