当前位置:  开发笔记 > 运维 > 正文

如何在推送掌握时使用Git触发器制作Jenkins CI?

如何解决《如何在推送掌握时使用Git触发器制作JenkinsCI?》经验,为你挑选了4个好方法。

我正在尝试使用GitHub为一个项目设置Jenkins-ci.我已经使用适当的插件设置了Jenkins.我希望Jenkins只在项目中有人推动掌握时运行构建脚本.到目前为止,我已经能够设置它,以便在任何人推送到任何地方时都会触发构建,但这太宽泛了.我在Git上使用post-receive服务挂钩完成了这个.

我已经阅读了Jenkins wiki和一些教程,但缺少这个特殊的细节......它可能与民意调查有关吗?或者应该在Git方面完成工作,这样Git只会在master更改时触发Jenkins ?



1> olenz..:

正如他在评论中已经注意到的那样,同时有一个很好的解决方案(描述在Polling必须死:从Git钩子触发Jenkins构建):

将Jenkins作业的构建触发器设置为Poll SCM,但指定计划.

创建GitHub post-receive触发器以通知URL

http://yourserver/jenkins/git/notifyCommit?url=?token=

这将触发轮询指定Git存储库的所有构建.

但是,轮询实际上会检查是否已将任何内容推送到已使用的分支.

它完美地运作.


适用于Bitbucket的POST钩子(不是Jenkins).要指定身份验证凭据,可以使用http:// user:password@my.ci.server/git/notifyCommit?url = ...作为URL.

2> docwhat..:

从版本0.5开始,Jenkins的GitHub插件可以在将更改推送到GitHub时触发构建.


@asveikau - 最初的问题是关于github.

3> 小智..:

而不是远程触发构建,更改Jenkins项目配置以通过轮询触发构建.

Jenkins可以根据固定的内部或URL进行轮询.如果没有针对该分支的更改,则后者是您要跳过构建的内容.具体细节在文档中.基本上你只需要检查"轮询SCM"选项,将计划部分留空,并设置一个远程URL以命中JENKINS_URL/job/name/polling.

如果您有一个安全的Jenkins环境/build,那么一个问题就是不同,/pollingURL需要身份验证.这里的说明有详细信息.例如,我有一个GitHub Post-Receive挂钩username:apiToken@JENKIS_URL/job/name/polling.



4> etusm..:

对于GitLab,请使用以下步骤:

    转到项目的设置→Web挂钩

    从Jenkins项目输入"Build Now"URL作为推送事件URL:

    http://server.com/jenkins/job/project_name/build?delay=0sec 例如

    单击Add Web Hook然后test hook

然后,只要您提交到存储库,就会触发Web挂钩并创建构建.请务必将Jenkins工作区设置为,delete workspace before each build以便获得新代码的全新副本.


您如何解决有关仅在按下master分支时就构建的问题?
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有