【发布时间】:2022-12-20 03:48:51
【问题描述】:
标签: jenkins-pipeline
标签: jenkins-pipeline
假设您指的是声明性管道,您可以使用管道 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)]
}
}
【讨论】: