Openshift 詹金斯管道

时间:2021-02-01 13:44:52

标签: jenkins jenkins-pipeline openshift

我正在寻找有关 openshift 上 Jenkins 管道下方使用的函数的解释。

<块引用>
  1. builds.untilEach(1)
  2. it.describe()
  3. echo "内循环:${it}"
  4. return (it.object().status.phase == "Complete")
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")
                }
              }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我将尝试概述您提到的这些行的含义:

  1. timeout(5) 这意味着本部分({} 之间)中描述的步骤需要在 5 分钟内完成,否则它们将被终止。如果以下任何操作花费的时间超过 5 分钟,则此步骤将失败。

  2. builds.untilEach(1) 循环遍历与上述选择器 openshift.selector("bc", "front-end-build") 相关的所有构建。此循环期望至少返回一个构建。它遍历 Builds 并等待闭包体(在 {} 之间)返回“true”。

  3. it.describe() 描述当前正在循环/等待的 Build 对象。

  4. echo "Inside loop: ${it}" 将 Build 对象写入标准输出。

  5. return (it.object().status.phase == "Complete") 检查我们循环的 Build 是否完成并返回。

所以基本上,这个循环将等待与 BuildConfig front-end-build 相关的所有构建完成。