我有两个作业:Job_a和Job_b。我想在Job_a中使用一个变量来决定是否应该在JOb_b中发送一封电子邮件。
简化作业:JENKINS中电子邮件触发器脚本中使用的属性文件的变量
在Job_a:
步骤1:执行Windows批处理命令:
echo GO=Y > testme.txt
这将在工作区中创建testme.txt与GO = Y。
步骤2:触发/呼叫建立在其他项目:
项目建设:从属性文件Job_b
参数:testme.txt
在Job_b:
步骤1:
echo Go = %GO%
生成后操作 可编辑的电子邮件通知
触发:脚本 - 建立后
触发脚本:
build.envVars["GO"] == 'Y'
现在,运行Job_a,不会触发电子邮件,而在Job_b中的第1步,确实打印Go = Y
证明触发脚本本身是正确的,我添加了一个字符串参数在Job_a:
Name: GO1
Default Value: Y
和Job_b改变触发脚本:
build.envVars["GO1"] == 'Y'
运行Job_a,从而JOb_b并且邮件按预期发送。
似乎只有在上游作业中定义的参数可以在电子邮件触发器脚本中使用,属性文件中的参数不可用。
我知道我可以从与EnvInject插件飞属性文件注入参数,和/或与系统Groovy脚本,我可以添加新的参数,但我的编译环境是紧控制,没有系统的Groovy ,不能安装新的额外插件。
我詹金斯的版本是1.622
使用是否安装参数化触发器插件,如果已安装,则在构建后操作中将参数值从Job_a传递到Job_b。 – Suresh
@Suresh,我说参数确实是从Job_a传递到Job_b,问题是电子邮件触发器脚本无法访问它。 – Heinz
您在可编辑电子邮件中做了什么配置? – Suresh