我正在寻找有关 openshift 上 Jenkins 管道下方使用的函数的解释。
<块引用>node {
stage('build') {
openshift.withCluster() {
openshift.withProject() {
echo "Using project: ${openshift.project()}"
def builds = openshift.selector("bc", "front-end-build").related('builds')
builds.describe()
timeout(5) {
1. builds.untilEach(1) {
2. it.describe()
3. echo "Inside loop: ${it}"
4. return (it.object().status.phase == "Complete")
}
}
}
}
}
}
答案 0 :(得分:1)
我将尝试概述您提到的这些行的含义:
timeout(5)
这意味着本部分({}
之间)中描述的步骤需要在 5 分钟内完成,否则它们将被终止。如果以下任何操作花费的时间超过 5 分钟,则此步骤将失败。
builds.untilEach(1)
循环遍历与上述选择器 openshift.selector("bc", "front-end-build")
相关的所有构建。此循环期望至少返回一个构建。它遍历 Builds 并等待闭包体(在 {}
之间)返回“true”。
it.describe()
描述当前正在循环/等待的 Build 对象。
echo "Inside loop: ${it}"
将 Build 对象写入标准输出。
return (it.object().status.phase == "Complete")
检查我们循环的 Build 是否完成并返回。
所以基本上,这个循环将等待与 BuildConfig front-end-build
相关的所有构建完成。