无法让Jenkins在Github更改时触发构建

3
是的,我知道类似的文章有很多,但是没有一个答案能够满足我,我开始变得太紧张了。
我正在尝试使用Jenkins。它似乎是最受欢迎的持续集成选项。然而,在尝试将其与Github集成10次后,我失败了。不管我选择手动还是自动管理Webhooks,都无法工作。我正在使用Jenkins 1.532.1,这是截止今天的最新稳定版本。我已安装了所有必需的插件:Github OAuth、Git插件、Github插件等。我已经更改了配置10次以上。我已经阅读了Jenkins和插件文档(其中一些未经很好地记录)多次甚至更多次。除了在这里提问以查看是否有人可以为我指引方向之外,我不知道还能做什么。
我可以在Jenkins日志中看到Webhook正在工作并从Github接收有效负载,只是不能触发构建。
Received POST for https://github.com/mycompany/my-project

我需要知道具体需要安装哪些插件,如何设置Jenkins和插件以及其他细节,无论看起来多么微小。特别是插件的文档缺少许多细节。请不要把我引用到另一个问题,因为我已经多次阅读了许多类似的问题,但仍然一筹莫展。
3个回答

2

经过深入挖掘和不断探索,我找到了解决方案。但是并不开心。我不得不去掉SSH密钥的密码,并停止使用github.com的别名。问题在于,由于我使用了别名,进入有效载荷的Github仓库地址与我项目中的地址不匹配。现在我正在使用正常的地址:git@github.com/my-company/my-project.git,它可以工作了。但是为了让它工作,我不得不去掉SSH密钥的密码,这让我很不开心。


1
为Jenkins生成单独的SSH密钥。 - Tarjei Huse

1
  1. Create a user in Jenkins.
  2. in GitHub, in settings for the repo, got to webhooks and set the Payload URL. ex:

    http://<jenkins user>:<password>@<jenkins.server.url>:<port>/github-webhook/
    
    http://me:Password!!@jenkins.blablabla.com:81/github-webhook/
    
  3. In Jenkins set the trigger to Build when a change is pushed to GitHub.

  4. Check your plugins. You need at least Git plugin 2.4.0 and GitHub plugin 1.11.1. (If everything is working but changes aren't triggering it's probably the Git plugin. There was a bug fix for that in 2.4.0)

0
你是否已经按照这本书中的示例进行了实践:Jenkins权威指南,其中使用了Git作为示例。

我还没有读过这本书。但是我会去读,因为我真的需要更深入地了解Jenkins。无论如何,问题在于我已经让Jenkins触发了构建。结果是我必须使用git@github-project:mycompany/my-project.git表单来引用项目(以便能够使用我为Jenkins生成的SSH密钥对)。这个地址与有效载荷中的地址之间的差异是防止Jenkins触发作业的原因。问题是我不想使用系统SSH密钥对(没有Jenkins使用的密码)。那我该怎么办呢?有替代方案吗? - Reydel Leon
我瞥了一眼这本书。他们不使用Github插件,而是Git(轮询)。那不是我想要的。事实上,这本书相当过时,它是2011年的。我希望Jenkins在这3年多的时间里已经发展到足以抛弃那本旧书的程度了。 - Reydel Leon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接