繁体   English   中英

Github Webhook触发JSON负载过大错误的詹金斯工作

[英]Github webhook triggers jenkins job with too large JSON payload error

我正在为项目进行持续集成设置。 所有代码都在github存储库上,然后合并将触发到运行特定作业的jenkins服务器的Webhook。 从那里开始,此作业查看有效负载,并根据其分支确定要运行的下游作业。 其余的有效负载是不需要的。 在合并中有很多提交的实例中,json有效负载将非常大,以至于它会因以下错误而中断:

Cloning the remote Git repository
Cloning repository <git_repo>
> git init <http://jenkins_instance/job> # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init <http://jenkins_instance/job>
        ...
Caused by: hudson.plugins.git.GitException: Error performing command: git init <http://jenkins_instance/job>
        ...
Caused by: java.io.IOException: Cannot run program "git" (in directory "<http://jenkins_instance/job>")>: error=7, Argument list too long
        ...
Caused by: java.io.IOException: error=7, Argument list too long
        ...
ERROR: null

主要问题:有没有办法减小这种有效载荷的大小? 或关于如何处理有效载荷以避免错误的建议?

设置类似于这篇文章。 如何在Jenkins中处理github webhook有效负载?

该作业的当前设置为“参数化”,并且对于“有效负载”具有一个参数“字符串参数”。 然后,将这个变量保存到文件中,就像在执行主外壳程序期间一样:

echo "Current payload is ${payload}"
if [ -d ./payload.txt ]
then
    rm payload.txt;
fi
touch payload.txt
echo $payload >> payload.txt

对我来说,解决方法是使用另一个项目来处理有效负载超过linux限制的问题。 父项目将失败,并在git checkout上出现ioexception,触发子项目并传递内部版本号,子项目通过rest api查询有效负载的父项。

另一个解决方法是仅使用窗口节点。

参考: https : //serverfault.com/questions/533709/bulk-size-text-parameters-in-jenkins-report-error

暂无
暂无

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

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