【问题标题】:How trigger Jenkins to build a project?如何触发 Jenkins 构建项目?
【发布时间】:2014-10-09 06:51:03
【问题描述】:

我的任务是在 github 中的源代码更新时运行 构建任务。但是我对 Jenkins 很陌生,我很难做到这一点。

我的理解

github.com 将向我指定的特定 URL 发送 POST 消息。作为一个例子,让我们使用:

http://mywebsite/src-updated

所以源代码得到更新,github发送POST消息到mywebsite/src-updated。由于 HTTP 在端口 80 上运行,因此 Apache 会收到此消息。

 ____________LAN____________ 
|                           | 
| ..........   ..........   |  
| :JENKINS :   :APACHE  :   |     POST message to:                ..............
| :Listen  :   :Listen  :<--|<----http://mywebsite/src-updated--- : github.com :
| :on 8080 :   :on 80   :   |                                     :............:
| :........:   :........:   |     
|___________________________|

我的挫败感

现在呢?

詹金斯像个失败者一样坐在那里,没有人想和他一起玩。詹金斯先生将如何得到消息?我必须在 Apache 上安装一些模块以便通知他吗?这一切听起来与我目前阅读的稀疏信息非常不同,所以我觉得我完全偏离了轨道。

我也尝试使用 Github 插件,但我完全不知道它应该如何工作(如果您是新手,那么文档很糟糕)。

有什么帮助吗?

【问题讨论】:

    标签: github build jenkins triggers webhooks


    【解决方案1】:

    请查看link,了解如何使用 Apache 配置 Jenkins。此外,我还在GitHub plugin 页面上找到了这个注释:

    防火墙内的 Jenkins:
    如果您的 Jenkins 在防火墙内运行且无法直接从 Internet 访问,此插件可让您指定任意端点 URL 作为自动模式下的覆盖。该插件将假定您已设置反向代理或其他方式,以便将来自 GitHub 的 POST 路由到 Jenkins

    就在 GitHub 中的源代码更新时运行构建而言,在 Jenkins 中进行配置非常简单。作业/项目的配置页面中有一个轮询选项。转到作业的配置部分。搜索Build Triggers 部分。您将找到一个名为 Poll SCM 的复选框。启用此选项会告诉 Jenkins 在您指定的存储库(在本例中为 GitHub)中发现更改后立即启动构建。您必须指定某个时间间隔,之后它将检查 GitHub 是否有更改:

    例如,

    # every fifteen minutes (perhaps at :07, :22, :37, :52)
    H/15 * * * *
    

    有关上述更多选项和详细信息,请不要忘记查找帮助部分“

    【讨论】:

    • OTOH 如果已将 Github 项目配置为通知 Jenkins webhook,则无需轮询更改。然后只需在 Jenkins 中安装 Github 插件,并在作业配置中选中“将更改推送到 Github 时构建”框。
    • 没错@sti,它绝对是比我上面描述的更好(和有效)的方式。
    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2019-07-15
    • 2022-07-21
    • 1970-01-01
    • 2013-04-24
    相关资源
    最近更新 更多