Jenkins中的通用Webhook触发器插件问题

时间:2020-10-31 16:31:07

标签: jenkins github

我正在尝试使用Jenkins中的Generic Webhook Trigger插件来触发构建,以防在我的GitHub存储库上引发任何PR。首先,我定义了一个变量“ current_status”,将其映射到要从GitHub接收的json有效负载中的“ action”字段。虽然在提高PR时触发了构建,但是current_status的值变为null。我的GitHub webhook的内容类型为“ application / json”

Variable inside Jenkins

针对PR事件生成的GitHub有效负载中包含操作字段: “ action”:“ opened”, 但是,当我尝试在管道中使用println“ $ {params.current_status}”打印此变量时,该值将显示为null。

同样,当我尝试使用变量的值执行步骤时

when {
     expression { return params.current_status == "opened" }
} 

即使GitHub有效负载中的操作值已“打开”,也会跳过该阶段

对于调试问题,当我选择在作业日志中打印贡献变量的选项时,我可以看到current_status值的值已打开

enter image description here

但是当我在管道中引用此变量时,它的值会以某种方式变为空。

作为一种变通方法,使我的管道参数化,使用与“通用Webhook触发插件”部分中定义的变量相同的名称(current_status),然后在我的Jenkinsfile中引用它并起作用了(变量的值)反映了从GitHub从json有效负载中接收的值。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。对于可能面临相同问题的任何人,您都可以直接将Generic Webhook触发器插件中定义的变量称为Groovy变量。就我而言,我尝试直接使用变量current_status而不通过params引用它,并且它按预期工作。

通过参数化管道定义变量的另一种方法可能会有所帮助,因为我们希望手动运行构建。