问题
鉴于所有作业LEVEL_X
的作业名称中都有字符串,其中 X 是一个 > 1 的数字。我希望 X = n 的每个作业都使用 监视每个作业X = n-1
,如果每个作业都成功完成,则开始构建。我希望这项工作以X = n
1 分钟的间隔监视其他工作。
首先,我有兴趣知道最好的方法是什么,其次我想要一个解决方案,如果可以通过一个小脚本来实现,也许是一个可以system groovy script
使用 GROOVY PLUGIN 运行的 groovy 脚本。
问题
鉴于所有作业LEVEL_X
的作业名称中都有字符串,其中 X 是一个 > 1 的数字。我希望 X = n 的每个作业都使用 监视每个作业X = n-1
,如果每个作业都成功完成,则开始构建。我希望这项工作以X = n
1 分钟的间隔监视其他工作。
首先,我有兴趣知道最好的方法是什么,其次我想要一个解决方案,如果可以通过一个小脚本来实现,也许是一个可以system groovy script
使用 GROOVY PLUGIN 运行的 groovy 脚本。
以下是一些提示和代码片段:
http://<jenkins-server>/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)
}
链接到启动构建的方法。
注意:如果您使用的是 Matrix 构建,事情会变得有点棘手。但只要你不这样做就足够了。