PageSourceSearch

https://www.pushplus.plus/doc/assets/jenkins.html-yHcw8U_o.js

js pushplus.plus collected 2026-10-01 13:55:29 UTC 13,967 bytes, 36 lines download raw bytes

1import{_ as n,c as a,b as e,o as i}from"./app-DRirxyIy.js";const p={};function l(t,s){return i(),a("div",null,[...s[0]||(s[0]=[e(`<h1 id="jenkins插件" tabindex="-1"><a class="header-anchor" href="#jenkins插件"><span>Jenkins插件</span></a></h1><h2 id="引言" tabindex="-1"><a class="header-anchor" href="#引言"><span>引言</span></a></h2><p>   Jenkins作为开发必备之神器,各家大小公司都在使用。Jenkins自身内置了基于邮件推送构建结果的功能。但是随着移动互联网的发展,邮件这玩意已经越来越少使用了,是否有一种办法能把Jenkins构建结果直接推送到微信上,方便查看的工具呢。找了半天并没有找到一款太理想的工具,于是便自己开发了一款Jenkins插件来实现这样的功能。分享给大家,一起来使用!</p><h2 id="使用步骤" tabindex="-1"><a class="header-anchor" href="#使用步骤"><span>使用步骤</span></a></h2><h3 id="_1-获取token" tabindex="-1"><a class="header-anchor" href="#_1-获取token"><span>1. 获取token</span></a></h3><p>  访问网址:<a href="http://www.pushplus.plus/push2.html" target="_blank" rel="noopener noreferrer">http://www.pushplus.plus/push2.html</a> 使用微信扫码即可登陆。</p><h3 id="_2-创建群组-可选配置" tabindex="-1"><a class="header-anchor" href="#_2-创建群组-可选配置"><span>2. 创建群组(可选配置)</span></a></h3><p>  如果需要推送给多个人,可以使用pushplus的一对多消息来实现。新建一个群组。群组编码作为群组的唯一标示,后续需要使用。群组名称随意
1填写。</p><p>  创建成功之后点击群组上的“查看二维码”,将二维码发给需要加入群组的同事。以后推送的消息加入群组的用户都会收的到。在“订阅人”中可以主动的移除不想要的用户。 <a data-fancybox title="群组" href="//image.pushplus.plus/image/group1.png"><img src="//image.pushplus.plus/image/group1.png" alt="群组"></a></p><p>  最后需要您的token和群组编码,在后续jenkins配置中使用。</p><h3 id="_3-安装jenkins插件" tabindex="-1"><a class="header-anchor" href="#_3-安装jenkins插件"><span>3. 安装jenkins插件</span></a></h3><p>  目前插件已经发布到jenkins的官方插件库中。插件地址:<a href="https://plugins.jenkins.io/pushplus/" target="_blank" rel="noopener noreferrer">https://plugins.jenkins.io/pushplus/</a></p><p>  安装直接到jenkins中: 系统管理(Manage Jeknis)-&gt;插件管理(Manage Plugins)-&gt;Available plugins 里面搜索“pushplus”,选中后点击安装。</p><a data-fancybox title="" href="//image.pushplus.plus/doc/img/jenkins/jenkins0.png"><img src="//image.pushplus.plus/doc/img/jenkins/jenkins0.png" alt=""></a><p>  安装完成之后,需要重启jenkins,让插件生效。</p><p>  重启jenkins后,在插件管理-&gt;已安装 中能找到“pushplus Notification”就代表安装成功啦!</p><a data-fancybox title="" href="//image.pushplus.plus/doc/img/jenkins/jenkins01.png"><img src="//image.pushplus.plus/doc/img/jenkins/jenkins01.png" alt=""></a><h3 id="_4-配置jenkins" tabindex="-1"><a class="header-anchor" href="#_4-配置jenkins"><span>4. 配置jenkins</span></a></h3><p>  插件安装完成之后还需要配置一些参数,才能正常推送消息。</p><p>  到 系统管理(Manage Jeknis)-&gt; 系统设置(Configure System)-&gt; 配置 pushplus 账号信息 中设置您的Jenkins地址和您pushplus的用户token或消息token</p><ul><li><p>Jenkins URL地址 用于推送消息点击后跳转的链接地址</p></li><li><p>用户token或消息token 指的是pushplus分配给您的用户token或者消息token,请到pushplus网站上获取,请务必填写正确</p></li></ul><p><a data-fancybox title="" href="//image.pushplus.plus/doc/img/jenkins/jenkins1.png"><img src="//image.pushplus.plus/doc/img/jenkins/jenkins1.png" alt=""></a></p><p>  然后就可以到您的具体构建任务中配置了。在构建后操作中把plusplus增加进来,可以选择需要的发送渠道,如需发送一对多消息可填入第二步创建的群组编码,还支持好友消息。然后保存即可。</p><p>  如果您使用的是pipeline,插件也是支持的,语法如下:</p><div class="language-javascript line-numbers-mode" data-highlighter="prismjs" data-ext="js"><pre><code class="language-javascript"><span class="line">post <span class="token punctuation">{</span></span>
2<span class="line">       always <span class="token punctuation">{</span>         </span>
3<span class="line">           <span class="token function">pushplus</span> <span class="token punctuation">(</span></span>
4<span class="line">               <span class="token literal-property property">channel</span><span class="token operator">:</span> <span class="token string">&#39;wechat&#39;</span><span class="token punctuation">,</span>       <span class="token comment">// 发送渠道:wechat/webhook/cp/mail/sms/extension</span></span>
5<span class="line">               <span class="token literal-property property">topic</span><span class="token operator">:</span> <span class="token string">&#39;build-alerts&#39;</span><span class="token punctuation">,</span>      <span class="token comment">// 群组编码(可选)</span></span>
6<span class="line">               <span class="token literal-property property">to</span><span class="token operator">:</span> <span class="token string">&#39;&#39;</span><span class="token punctuation">,</span>      <span class="token comment">// 好友令牌(可选)</span></span>
7<span class="line">
7               <span class="token literal-property property">webhook</span><span class="token operator">:</span> <span class="token string">&#39;&#39;</span><span class="token punctuation">,</span>     <span class="token comment">// webhook编码(可选)</span></span>
8<span class="line">           <span class="token punctuation">)</span>            </span>
9<span class="line">       <span class="token punctuation">}</span></span>
10<span class="line">   <span class="token punctuation">}</span></span>
11<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><a data-fancybox title="" href="//image.pushplus.plus/doc/img/jenkins/jenkins2.png"><img src="//image.pushplus.plus/doc/img/jenkins/jenkins2.png" alt=""></a></p><p>  然后就可以正常使用了。jenkins构建以后,微信上就会收到构建结果的推送消息了。点击消息内容,直接打开您的jenkins构建日志,方便排查构建结果。</p><p><a data-fancybox title="" href="//image.pushplus.plus/image/jenkins7.jpg"><img src="//image.pushplus.plus/image/jenkins7.jpg" style="height:350px;"></a></p><h2 id="实现原理" tabindex="-1"><a class="header-anchor" href="#实现原理"><span>实现原理</span></a></h2><p>  Jenkins是对于插件提供了丰富的接口参数。pushplus插件本身在jenkins构建的时候触发执行,可以读取到构建有关的信息,如构建的项目名称、构建编号、构建状态等。然后在构建完成的时候将这些信息拼装后通过pushplus发送到用户的微信上。<br>   核心拼装执行了一个POST请求。pushplus接收到请求后针对性的调用了定制模板,通过微信模板消息接口发送到用户微信上。</p><h3 id="模板专用的请求示例" tabindex="-1"><a class="header-anchor" href="#模板专用的请求示例"><span>模板专用的请求示例</span></a></h3><ul><li>请求地址:http://www.pushplus.plus/send/{token}?template=jenkins</li><li>请求方式:POST</li><li>Content-Type: application/json</li><li>请求报文:</li></ul><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">{</span>
12<span class="line">    &quot;topic&quot;:&quot;group&quot;,</span>
13<span class="line">    &quot;title&quot;:&quot;测试项目构建成功&quot;,</span>
14<span class="line">    &quot;buildState&quot;:&quot;构建成功&quot;,</span>
15<span class="line">    &quot;projectName&quot;:&quot;测试项目&quot;,</span>
16<span class="line">    &quot;buildNumber&quot;:&quot;#11&quot;,</span>
17<span class="line">    &quot;buildUser&quot;:&quot;pushplus&quot;,</span>
18<span class="line">    &quot;buildLogUrl&quot;:&quot;&quot;,</span>
19<span class="line">    &quot;projectUrl&quot;:&quot;&quot;,</span>
20<span class="line">    &quot;costTime&quot;:&quot;23&quot;</span>
21<span class="line">}</span>
22<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="通用报文的请求示例" tabindex="-1"><a class="header-anchor" href="#通用报文的请求示例"><span>通用报文的请求示例</span></a></h3><ul><li>请求地址:http://www.pushplus.plus/send/</li><li>请求方式:POST</li><li>Content-Type: application/json</li><li>请求报文:</li></ul><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">
22{</span>
23<span class="line">  &quot;token&quot;: &quot;{token}&quot;,</span>
24<span class="line">  &quot;title&quot;: &quot;项目构建通知&quot;,</span>
25<span class="line">  &quot;template&quot;: &quot;jenkins&quot;,</span>
26<span class="line">  &quot;content&quot;: {</span>
27<span class="line">    &quot;buildState&quot;: &quot;构建成功&quot;,</span>
28<span class="line">    &quot;projectName&quot;: &quot;测试项目&quot;,</span>
29<span class="line">    &quot;buildNumber&quot;: &quot;#11&quot;,</span>
30<span class="line">    &quot;buildUser&quot;: &quot;pushplus&quot;,</span>
31<span class="line">    &quot;buildLogUrl&quot;: &quot;&quot;,</span>
32<span class="line">    &quot;projectUrl&quot;: &quot;&quot;,</span>
33<span class="line">    &quot;costTime&quot;: &quot;23&quot;</span>
34<span class="line">  }</span>
35<span class="line">}</span>
36<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>插件代码已开源,github项目地址:<a href="https://github.com/je
36nkinsci/pushplus-plugin" target="_blank" rel="noopener noreferrer">https://github.com/jenkinsci/pushplus-plugin</a></p>`,37)])])}const o=n(p,[["render",l]]),c=JSON.parse('{"path":"/extend/jenkins.html","title":"Jenkins插件","lang":"zh-CN","frontmatter":{"title":"Jenkins插件"},"git":{"updatedTime":1786328744000,"contributors":[{"name":"陈思远","username":"","email":"[email protected]","commits":10},{"name":"陈大人","username":"","email":"[email protected]","commits":3}],"changelog":[{"hash":"588edbad9bbc3882ac3353908478e587d23969b0","time":1786328744000,"email":"[email protected]","author":"陈大人","message":"jenkins开源"},{"hash":"4e87b094da91f402ce9fb0cfbbc59c6283d5113c","time":1783413701000,"email":"[email protected]","author":"陈大人","message":"优化发布脚本"},{"hash":"0ea44d6d99ba7fba963a175eef6e7c051a70c026","time":1772602765000,"email":"[email protected]","author":"陈思远","message":"增加通用报文请求示例"},{"hash":"1797a3072c29ef4dc2a9528f94f6f378b4b6c402","time":1764120460000,"email":"[email protected]","author":"陈思远","message":"版本更新"},{"hash":"3e6bd676ea74f89b646f6c028040eed0f075d456","time":1759991466000,"email":"[email protected]","author":"陈思远","message":"更新jenkins文档"},{"hash":"0bd1672c308634d9ebfd59b2af1d77ee06ce8091","time":1746800668000,"email":"[email protected]","author":"陈大人","message":"文档优化"},{"hash":"c85c398e40a5ac5350369112cfdbc89359ebf701","time":1651049635000,"email":"[email protected]","author":"陈思远","message":"新增问题"},{"hash":"033ecb49d4cf91c8d1385848d62506c86c8a6ec5","time":1617321099000,"email":"[email protected]","author":"陈思远","message":"调整细节"},{"hash":"f687d4a9db97515b3bacb3b3d5f1e08b156acd2d","time":1616598530000,"email":"[email protected]","author":"陈思远","message":"更新文档"},{"hash":"5a14e99b5f33e6efa16895e1444e43bd7be32c13","time":1615813501000,"email":"[email protected]","author":"陈思远","message":"修改登录地址"},{"hash":"6d0f0d6373ea3cf6fd599d838af6b2eadf3677ee","time":1602418224000,"email":"[email protected]","author":"陈思远","message":"修改域名"},{"hash":"a939e2dd55d040ae7ae9a7a0e6d2553d1f71f42a","time":1591952576000,"email":"[email protected]","author":"陈思远","message":"图片路径调整"},{"hash":"90b3d451df7a50fa0fc31b6a183e026ef65db583","time":1591180173000,"email":"[email protected]","author":"陈思远","message":"插件调整"}]},"filePathRelative":"extend/jenkins.md"}');export{o as comp,c as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.