问题
鉴于所有作业的作业名称都包含字符LEVEL_X
,其中X是数字> 1.我希望X = n的每个工作都用X = n-1
来监视每个工作,如果每个工作都成功完成,就开始建立工作。我希望X = n
的工作能够以1分钟的间隔监视其他工作。
首先,我有兴趣知道最好的方法是什么,其次我想要解决方案,如果一个可以通过一个小脚本实现,也许是一个可以在system groovy script
中运行的groovy脚本使用GROOVY PLUGIN。
答案 0 :(得分:42)
以下是一些提示和代码段:
http://<jenkins-server>/script
上有一个Groovy Script控制台,可以帮助您调试脚本。输出所有作业名称的代码段:
def hi = hudson.model.Hudson.instance
hi.getItems(hudson.model.Project).each {project ->
println(project.displayName)
}
从n
中提取LEVEL_n
的代码段(实现为闭包):
def level = { name ->
def ret = 0
name.eachMatch(~'LEVEL_([1-9]+[0-9*])', {ret = it[1].toInteger()})
return ret
}
获取所有最新版本的状态的代码段:
def hi = hudson.model.Hudson.instance
hi.getItems(hudson.model.Project).each {project ->
println(project.lastBuild.result)
}
链接到starts a build。
注意:如果您使用Matrix构建,事情会变得更加繁琐。但只要你不这样就足够了。