【问题标题】:How to auto trigger Jenkins job/build when the changes are pushed to Github将更改推送到 Github 时如何自动触发 Jenkins 作业/构建
【发布时间】:2017-08-16 21:01:31
【问题描述】:

我在本地机器上使用Jenkins(Jenkins URL 未通过互联网公开,但该机器上启用了互联网。)

我做了以下配置更改:

  1. 在 Jenkins 工具上安装了 Git 和 Github 插件。

  2. 我已按照以下步骤在 Github 上进行更改时触发自动构建。已配置 Maven 构建,我可以通过单击 Build Now 链接手动构建。

  3. 在 Jenkins 中配置 Github 部分如下 (Manage Jenkins -> Configure Systems)

  4. 我已经使用 Git-bash 创建了 SSH 密钥并在 Github 帐户中添加了密钥 (settings -> SSH and GPG keys -> New SSh Key)

  5. 在 github 存储库中配置了 Webhook 设置。 (Repository -> Settings -> Webhook -> add webhook)

  6. 我可以手动构建,但从 github 推送事件触发构建不起作用。给出以下警告:

如果有其他可用的解决方案,请帮助我。

【问题讨论】:

  • 不使用 WebHook 你可以得到这个过程,但检查所需的最短时间是 1 分钟。
  • @ChandraSekhar :你能给我一些参考链接吗?或者你能列出步骤吗?
  • 为私有仓库注册 webhook 失败,但是对于使用相同访问令牌的公共仓库注册成功

标签: windows github jenkins jenkins-plugins webhooks


【解决方案1】:

您可以使用git hooks 实现此目的。

首先确保您在工作中启用了Poll SCM。如果您尚未启用它但未提供任何时间表。

在您的 Git 存储库中,将有隐藏的 .git 文件夹。在其中您可以找到一个名为hooks 的子文件夹。

现在在这个文件夹中创建一个名为post-commit的文件,不要为该文件使用任何扩展名,并在其中添加以下行并保存:

#!/bin/bash curl http://localhost:8080/git/notifyCommit?url=<GIT_REPO_URL>

这将扫描所有使用GIT_REPO 的作业,并在您的存储库发生更改时触发构建。有关更多详细信息,请阅读此document.

【讨论】:

  • 我猜,这是用于本地 git 存储库的。如果我想在全局 git repo 中更改数据时构建触发器怎么办(例如:github.com/HarshaBiyani)?
  • 这不适用于本地 git 存储库。这是一个远程存储库。
  • 好的..你能告诉我.git文件夹路径是来自我的机器还是来自github存储库?
  • 我怎么知道你的.git 文件夹在你的机器中的什么位置?它必须在您执行过git init 或您执行过clone 操作的目录中。
猜你喜欢
  • 1970-01-01
  • 2012-08-30
  • 2012-05-24
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
相关资源
最近更新 更多