到目前为止,我已经阅读了几乎所有关于如何使用GitHub设置Jenkins的指南,但它们似乎都没有解决我的问题。我目前的工作很好,但我希望每次推送到GitHub时都要构建它。我还想手动设置我的钩子URL(不要让Jenkins自动管理它们)。目前,我的Jenkins服务器在端口8080(http://ec2-XX-XXX-XXX-XXX.compute-1.amazonaws.com:8080/
)上的EC2上运行。系统管理员说服务器设置为侦听该端口上的所有传入请求。
在“配置系统”区域的GitHub Web Hook区域下,我已Manually manage hook URLs
已选中。
在我的项目配置中,我有以下设置:
GitHub Project: https://github.com/username/projectname/
Source Code Management > Git
Repository URL: git@github.com:username/projectname.git
Branches to Build - Branch Specifier (blank for default): master
Build Triggers > Build when a change is pushed to GitHub
在GitHub Hook Log中显示消息:
Last GitHub Push
Polling has not run yet.
我还创建了一个GitHub可以连接的用户。用户具有以下全局权限的角色: 总体而言:阅读 工作:阅读 工作:发现 工作:建立
在GitHub上,Settings > Service Hooks
我添加了https://USERNAME:PASSWORD@ec2-XX-XXX-XXX-XXX.compute-1.amazonaws.com:8080/github-webhook/
,其中USERNAME和PASSWORD是GitHub帐户的用户名和密码。我添加了指向WebHook URLs
区域和Jenkins (GitHub plugin)
区域的链接。当我点击以前区域下的Test Hook
时,GitHub页面上没有显示确认消息,但是当我点击后者下面的Test Hook
时,它表示Payload Deployed。但是,两者都在我的系统日志文件中注册,并且它们产生类似的错误:
winstone.WinstoneException: Error URI Line: <Garbled Text Here>
at winstone.HttpListener.parseURILine(HttpListener.java:349)
at winstone.HttpListener.parseURI(HttpListener.java:258)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:83)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
Jun 7, 2013 6:16:31 PM winstone.Logger logInternal
SEVERE: Error within request handler thread
关于可能导致这种情况的任何想法?
答案 0 :(得分:1)
如果Winstone的访问日志中没有显示,并且问题在没有SSL的情况下仍然存在,请尝试nc -l -p 8080
查看从GitHub发送的实际请求是什么。 (或者尝试使用不同的servlet容器。)