我正在使用 Jenkins 版本。2.150.1 并且有一些自由式工作和一些管道工作。在这两种工作类型中,我都使用 emailext 插件,带有模板和预发送脚本。
似乎自由式项目中可用的构建变量在管道项目中为空。
预发送脚本如下(只是一个例子,我的脚本比较复杂):
msg.setSubject(msg.getSubject() + " [" + build.getUrl() + "]")
msg 变量没有问题。在自由式作业中,此脚本将构建 url 添加到邮件主题。在管道作业中,作业控制台中给出了以下内容:
java.lang.NullPointerException: Cannot invoke method getUrl() on null object
在管道作业中调用 emailext 是:
emailext body: '${SCRIPT, template="groovy-html.custom.pipeline.sandbox.template"}',
presendScript: '${SCRIPT, template="presend.sandbox.groovy"}',
subject: '$DEFAULT_SUBJECT',
to: 'user@domain.com'
我宁愿为这个问题找到一个通用的解决方案(即在管道预发送脚本中访问构建变量),但也希望有任何解决方法来满足我当前的需求: 在管道预发送中访问作业名称、作业编号和工作区文件夹- 发送脚本。