2017-08-09 73 views
1

我在我的本地机器使用Jenkins建(詹金斯URL不暴露在互联网,但互联网的是,机上启用。)如何自动触发詹金斯工作/时的变化都推到Github上

我做了以下配置更改:

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

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

  3. 在詹金斯配置Github的部分,如下所示(Manage Jenkins - >Configure Systemsgithub services configuration in Jenkins

  4. 我已创建使用GIT-bash的SSH密钥和在Github的帐户(settings - >SSH and GPG keys - >New SSh Key)加入密钥 SSH keys added in Git

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

  6. 我可以手动生成,但是从GitHub推送事件触发建立不工作。给出以下警告: enter image description here

请帮助我,如果有任何其他的解决方案可供选择。

+0

不使用WebHook,您可以获得该过程,但检查所需的最短时间为1分钟。 –

+1

@ChandraSekhar:你能给我一些参考链接吗?或者你能否列出步骤? – Harsha

+0

为私有存储库注册webhook失败,但它对使用相同访问令牌的公共存储库成功 –

回答

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.

+0

我想这是针对本地git存储库的。如果我想在全局git repo(例如:https://github.com/HarshaBiyani)中更改数据时构建触发器,该怎么办? – Harsha

+0

这不适用于本地git存储库。这是针对远程存储库的。 – ANIL

+0

好的。你能告诉我.git文件夹路径是从我的机器还是从github存储库? – Harsha