繁体   English   中英

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

[英]Issue with Generic Webhook Trigger plugin in Jenkins

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

詹金斯内部的变量

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

此外,当我尝试根据变量的值执行一个步骤时

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

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

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

在此处输入图片说明

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM