Jenkins 构建管道 job 间传递参数

安装 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"}

你可能感兴趣的:(Java,构建,CI,Jenkins,参数传递,BUILD_NUMBER,构建管道)