【问题标题】:How to add the option of 'Triger parametrized build on other project' on Post Build in Jenkins Pipeline如何在 Jenkins Pipeline 的 Post Build 中添加“Trigger parameterized build on other project”选项
【发布时间】:2022-12-20 03:48:51
【问题描述】:

我如何在 Post Build 中将以下示例添加到我的 Jenkins 管道中:

【问题讨论】:

    标签: jenkins-pipeline


    【解决方案1】:

    假设您指的是声明性管道,您可以使用管道 post 指令以及内置的 build 步骤来实现此目的,该步骤将允许您触发参数化构建。

    Jenkins post 部分用于在管道的构建步骤完成后执行命令,您可以根据几个预定义的 conditions 来控制后期执行,这些预定义确定何时执行 post 部分中的步骤。在你的情况下,你会想要使用总是健康)状况。

    build 步骤允许您为给定作业触发新构建,同时传递作业的相关参数,参数类型应与您正在触发的作业中定义的参数类型匹配。此外还有一个等待参数来确定您的作业是否应该等到触发的作业完成。

    您生成的管道将类似于(假设为字符串参数):

    pipeline {
        agent any
        stages {
          // your pipeline steps
        }
        post {
           always {
               build job: 'YourJobName', wait: false, 
                     parameters:[string(name: 'JobName', value: JOB_NAME), string(name: 'JobID', value: BUILD_ID)]
           }
        }
    }
    

    如果您使用的是脚本管道,则 post 部分不可用,您需要使用 try catch 块包装您的代码,并在 finally 部分运行构建步骤:

    node {
        try {
            // Your pipeline steps
        } catch (err) {
            // optional error handeling
            echo "Failed: ${err}"
        } finally {
            // will always be executed
            build job: 'YourJobName', wait: false, 
                  parameters:[string(name: 'JobName', value: JOB_NAME), string(name: 'JobID', value: BUILD_ID)]
        }
    }
    

    【讨论】:

      最近更新 更多