https://www.cxyzjd.com/article/u013168025/102972693
问题:
jenkins 子job 调用时,无法传递shell中定义或修改的变量,只能使用job的入参或者环境变量(Parameterized Trigger Plugin插件问题)
问题分析:
插件可以实现Job间参数传递但是有局限性,我们只能选择传递当前build的参数或者环境变量。而且这个变量只能是上级job中参数化时传入的,shell中进行了修改也不会改变。如果要传递一个自定义的变量怎么办呢? 构建步骤中的自定义变量在执行结束后都会被回收,我们不可能在"predefined parameters"中取到
解决:
通过properties file的方式传递参数(仍然需要插件:Parameterized Trigger Plugin)
现有上游job:[test-file-parameters] 和下游job:[test-job]
在[test-file-parameters]中有参数:compiled 默认值:123456
删除原来老的数据 然后可以对变量进行一些操作之后,然后以"xx=xx"的样式写入到配置文件『propfile.txt』中。
IFUT=$compiled IFUT是下游job test-job里的变量 compiled是上游job test-file-parameter里的变量
然后在"Trigger parameterized build on other projects"中选择"Parameters from preperties file",在propfile里写入多个变量就可以传递多个值。
在[test-job]中有参数 IFUT 这个值要和profile.txt里的key值一样 否则无法传递
查看一下IFUT最终的值 是不是上游job中shell里修改成的3333333
构建上游job:[test-file-parameter] 构建成功之后会触发test-job 传递自定义变量成功!
没有评论:
发表评论