<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps技术分享 &#187; jenkins webhook</title>
	<atom:link href="http://www.showerlee.com/archives/tag/jenkins-webhook/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>Jenkins构建github webhook</title>
		<link>http://www.showerlee.com/archives/2893</link>
		<comments>http://www.showerlee.com/archives/2893#comments</comments>
		<pubDate>Mon, 19 Oct 2020 04:06:45 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[DevTools]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[jenkins webhook]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=2893</guid>
		<description><![CDATA[如何构建Jenkins github webhook, 这个一直在网上没有一个非常系统的解决方案, 官方给的文 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	<span style="background-color:#FFFFFF;font-size:14px;font-family:Helvetica;"><span style="font-size:16px;">如何构建Jenkins github webhook, 这个一直在网上没有一个非常系统的解决方案, 官方给的</span><a href="https://plugins.jenkins.io/github/" target="_blank"><span style="font-size:16px;">文档</span></a><span style="font-size:16px;">也相对比较晦涩</span></span>
</p>
<p>
	
</p>
<p>
	<span style="font-size:16px;"><span style="font-size:16px;background-color:#FFFFFF;">刚好最近闲下来想在把之前的CICD项目搞的更加完备, 这里就结合这块顺带把Jenkins github webhook给大家整理一个文档, 帮助有需求的小伙伴针对如何使用Jenkins插件仓库下的github plugin与我们常用的github代码进行webhook集成.</span></span>
</p>
<p>
	<span style="font-size:16px;"><span style="font-size:16px;background-color:#FFFFFF;">DEMO:&nbsp;<span style="font-size:16px;background-color:#FFFFFF;"><a href="https://github.com/showerlee/gradle-demo-with-docker" rel="nofollow">https://github.com/showerlee/gradle-demo-with-docker</a></span></span></span>
</p>
<p>
	
</p>
<p>
	<span style="font-size:16px;color:#E53333;"><span style="font-size:16px;background-color:#FFFFFF;color:#E53333;">什么是Github Webhook?</span></span>
</p>
<p>
	<span><span style="font-size:14px;background-color:#FFFFFF;"><span style="font-size:16px;">顾名思义, 也就是Github项目下Webhook允许使用者触发一个CI系统(例如Jenkins)的URL，这个URL通常由github plugin提供，这个Webhook会侦听特定事件，如推送master push, PR或merge请求。</span><span style="font-size:16px;background-color:#FFFFFF;">如果项目推送了新代码,&nbsp;&nbsp;</span><span style="font-size:16px;">Github会向这个Webhook URL发送包含此次commit的相关POST请求, 并通过Jenkins相关配置触发相应的jenkins job, 实现我们每次的代码提交都能够自动触发一次Jenkins代码构建, 真正打通了我们代码仓库与CI系统的壁垒, 使我们开发人员能够快速进行CICD自动化集成构建部署, 并且在后期的审计过程中, 能够通过每次commit追溯每一次构建内容. 实现commit与构建一一对应.</span></span></span>
</p>
<p>
	<span><span style="font-size:14px;background-color:#FFFFFF;"><br />
</span></span>
</p>
<p>
	<span style="font-size:16px;"><span style="font-size:16px;background-color:#FFFFFF;">这里开始我们的具体配置:</span></span>
</p>
<p>
	<span style="font-size:16px;"><span style="font-size:16px;background-color:#FFFFFF;"><br />
</span></span>
</p>
<p>
	<span style="color:#337FE5;font-size:18px;"><span style="font-size:18px;background-color:#FFFFFF;color:#337FE5;">1.在Github下添加Jenkins github plungin webhook URL</span></span>
</p>
<p>
	<span style="font-size:16px;background-color:#FFFFFF;">访问你的代码仓库如下路径</span>
</p>
<p>
	<span style="font-size:14px;background-color:#FFFFFF;"><span style="font-size:16px;"><a href="https://github.com/&lt;org&gt;/&lt;repo&gt;/settings/hooks/" rel="nofollow">https://github.com/&lt;org&gt;/&lt;repo&gt;/settings/hooks/</a></span><br />
</span>
</p>
<p>
	<span style="font-size:16px;background-color:#FFFFFF;">点击右上角的Add webhook</span>
</p>
<p>
	<span style="font-size:14px;background-color:#FFFFFF;"><a href="http://www.showerlee.com/archives/2893/1-50"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/1.png" alt="" width="800" height="164" class="alignnone size-full wp-image-2900" title="" align="" /></a><br />
</span>
</p>
<p>
	<span style="font-size:16px;">按照如图添加我们的Jenkins URL地址, 假设你的Jenkins主页是jenkins.example.com, 这里URL即为如下地址(如有非80端口, 这里也要添加)</span>
</p>
<p>
	<span style="font-size:16px;">这里需要保证jenkins.example.com为可以访问的公网域名且对应的IP地址可公网解析.</span>
</p>
<p>
	<span style="color:#E53333;font-size:16px;">本地虚拟机用户</span><span style="color:#E53333;font-size:16px;">不适合此次webhook的教程, 因为github需要与你的jenkins主机通信, 这里本地虚拟机通常都在一个内网, 无法实现公网互通</span>
</p>
<p>
	<span style="color:#E53333;font-size:14px;"><a href="http://www.showerlee.com/archives/2893/2-35"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/2-1024x699.png" alt="" width="800" height="546" class="alignnone size-large wp-image-2901" title="" align="" /></a><br />
</span>
</p>
<p>
	
</p>
<p>
	<span style="font-size:16px;">配置好点击Add webhook保存</span>
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-size:18px;background-color:#FFFFFF;">2.在Github下创建Personal access token</span>
</p>
<p>
	<span style="color:#000000;font-size:16px;background-color:#FFFFFF;"><span style="font-size:16px;background-color:#FFFFFF;color:#000000;">访问你的代码仓库如下路径</span></span>
</p>
<p>
	<span style="color:#000000;font-size:16px;background-color:#FFFFFF;"><span style="font-size:16px;background-color:#FFFFFF;color:#000000;"><span style="font-size:16px;"><a href="https://github.com/settings/tokens" rel="nofollow">https://github.com/settings/tokens</a></span><br />
</span></span>
</p>
<p>
	<span style="color:#337FE5;font-size:16px;background-color:#FFFFFF;"><span style="color:#000000;font-size:16px;">按照如图配置你的token, 创建好后保存token内容</span><br />
</span>
</p>
<p>
	<span style="color:#337FE5;font-size:16px;background-color:#FFFFFF;"><span style="color:#000000;"><a href="http://www.showerlee.com/archives/2893/3-26"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/3-545x1024.png" alt="" width="600" height="1128" class="alignnone size-large wp-image-2902" title="" align="" /></a><br />
</span></span>
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-size:18px;"><span style="font-size:18px;background-color:#FFFFFF;color:#337FE5;">3. 安装配置Jenkins github plugin</span></span>
</p>
<p>
	<span style="font-size:16px;">访问</span><span style="font-size:16px;"><a href="http://jenkins.example.com/pluginManager/available" rel="nofollow">http://jenkins.example.com/pluginManager/available</a> 找到github plugin, 并进行安装.</span>
</p>
<p>
	<span style="font-size:16px;"><a href="http://www.showerlee.com/archives/2893/4-22"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/4.png" alt="" width="800" height="107" class="alignnone size-large wp-image-2903" title="" align="" /></a><br />
</span>
</p>
<p>
	<span style="font-size:16px;">进入http://jenkins.example.com/configure</span>
</p>
<p>
	<span style="font-size:16px;">找到github plugin区域, 按照如图进行配置</span>
</p>
<p>
	<span><span style="font-size:14px;background-color:#FFFFFF;"></span></span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2893/5-17"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/51.png" alt="" width="1000" height="227" class="alignnone size-full wp-image-2907" title="" align="" /></a>
</p>
<p>
	<span style="font-size:16px;">这里需要在Credentials下添加之前创建的Personal access token作为我们Github项目向Jenkins webhook URL发送POST请求的凭证.</span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2893/6-16"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/6.png" alt="" width="1000" height="329" class="alignnone size-full wp-image-2908" title="" align="" /></a>
</p>
<p>
	<span style="font-size:16px;">点击Test connection确认连接正常</span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2893/7-14"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/7.png" alt="" width="1000" height="239" class="alignnone size-full wp-image-2910" title="" align="" /></a>
</p>
<p>
	<span style="font-size:16px;">点击左下角Save保存Github</span><span style="font-size:16px;">配置</span>
</p>
<p>
	<span style="font-size:16px;"><br />
</span>
</p>
<p>
	<span style="font-size:18px;color:#337FE5;">4.激活Jenkins job使用该插件触发webhook</span>
</p>
<p>
	<span style="font-size:16px;">这里我进入我的一个jenkins pipeline item, 按照如图激活github webhook.</span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2893/8-13"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2020/10/8.png" alt="" width="1000" height="207" class="alignnone size-full wp-image-2913" title="" align="" /></a>
</p>
<p>
	
</p>
<p>
	<span style="font-size:16px;">这样子我们就成功的配置了Github到Jenkins的webhook.</span>
</p>
<p>
	<span style="font-size:16px;">这里我提供一个demo项目, 大家可以参考这个项目进行此次的配置.</span>
</p>
<p>
	<span style="font-size:16px;"><span style="font-size:16px;"><a href="https://github.com/showerlee/gradle-demo-with-docker" rel="nofollow">https://github.com/showerlee/gradle-demo-with-docker</a></span><span style="font-size:16px;"></span><br />
</span></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/2893">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Jenkins构建github webhook" href="http://www.showerlee.com/archives/2893">http://www.showerlee.com/archives/2893</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/2893/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
