安装 Parameterized Trigger 插件,传递管道中初始 BUILD_NUMBER 为例。
在初始 job 配置中,点击 “增加构建后操作步骤” --> Trigger parameterized build on other projects,然后点击 Add Parameters,选择 Predefinded parameters,在出现的文本框中填写要传递的参数,格式为 Key=value,一行一对。
例:
SOURCE_BUILD_NUMBER=${BUILD_NUMBER}
其中 ${BUILD_NUMBER} 是当前构建的构建号码,每次递增。
为了向下级 job 传递这个变量,单纯地在初始 job 中传递是不起作用的,下级 job 简单的使用
{ENV, var="SOURCE_BUILD_NUMBER"} 拿不到这参数值,得到结果为空。
Parameterized Trigger 插件文档中有这样的一段特殊警示(比提示级别高):
WARNING: You must define the parameter in downstream jobs via the This project is parameterized property. For example, if job1 passes ABC=123
to job2 then in job2 mark the job as This project is parameterized and add a parameter named ABC
. See this advisory for more information
就是说,需要在下游 job 中,声明这是个参数化 job,并且声明这个变量,之后才能得到正确的结果。
执行需要 2 步:
1. 勾选 This project is parameterized 复选框
2. 在这个区域内出现 "添加参数"按钮,点击按钮,选择一个参数类型,这里选择字符串参数,即 String Parameter,出现3个文本框,名称里添加参数名,即 SOURCE_BUILD_NUMBER,这个很重要,一定和上游 job 中传递出来的参数名一致。默认值,随便写个就行,这里写的是 ${BUILD_NUMBER},即本 job 的构建号码。描述就更随便了,放空。
这个时候再使用 SOURCE_BUILD_NUMBER 参数就得到合理值了。例如用它作为构建命名中的一部分:
job-name#${ENV, var="SOURCE_BUILD_NUMBER"}