使用 Jenkins 構建 Coding 項目 (資源)

Jenkins簡介

       Jenkins是一種跨平臺的持續集成和交付的應用軟件,它便於不斷穩定地交付新的軟件版本,並提升你的工做效率。這款開發運維工具還讓開發人員更容易把項目的變化整合起來,並使用大量的測試和部署技術。php

    Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)的基於web界面的平臺。前身是Hudson是一個可擴展的持續集成引擎。可用於自動化各類任務,如構建,測試和部署軟件。容許持續集成和持續交付項目,不管用的是什麼平臺,能夠處理任何類型的構建或持續集成。html

 

    Jenkins能實時監控持續集成過程當中所存在的問題,提升詳細的日誌文件和提醒功能,用圖表的形式,形象地展現項目構建的趨勢和穩定性。java

使用 Jenkins 構建 Coding 項目

 

Jenkins 是一個用 Java 編寫的開源的持續集成工具。它運行在 Servlet 容器中(例如 Apache Tomcat)。它支持軟件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC),能夠執行基於 Apache Ant 和 Apache Maven 的項目,以及任意的 Shell 腳本和 Windows 批處理命令。git

使用 Jenkins 構建 Coding 項目是利用 Webhook 向 Jenkins 服務器發送請求。Jenkins 接收到 Webhook 請求後,進行構建。要實現以上功能須要使用 Jenkins 的插件來實現,Jenkins Coding Webhook Plugin 是經過 Jenkins Gitlab Webhook 插件修改而得。安裝後便可響應 Coding 的 Webhook 請求。github

CI/CD:持續集成,持續交付/持續部署web

 

持續集成

 

    CI(Continuous Integration):軟件工程流程,能夠幫助開發人員更加頻繁地將代碼更改合併到共享分支或「主幹」中。一旦開發人員對應用所作的更改被合併,系統就會經過自動構建應用並運行不一樣級別的自動化測試(一般是單元測試和集成測試)來驗證這些更改,確保這些更改沒有對應用形成破壞。這意味着測試內容涵蓋了從類和函數到構成整個應用的不一樣模塊。若是自動化測試發現新代碼和現有代碼之間存在衝突,CI 能夠更加輕鬆地快速修復這些錯誤。sql

 

    就是說只要開發人員提交新的代碼,Jenkins就會馬上將新代碼與舊代碼進行合併構建測試。肯定新代碼與原代碼是否能夠集成在一塊兒。docker

持續部署數據庫

 

    CD(Continuous Deployment):是持續交付的下一步,若是代碼經過評審之後自動部署到生產環節中。在持續交付的基礎上,自動部署到生產環境中。處於業務考慮,也能夠選擇不部署。要想持續部署,必須先實施持續交付。ubuntu

Jenkins 版本

在 Jenkins 插件庫裏標記的,對 Jenkins 的版本依賴是 1.625.3。 在我司吃本身的狗糧的實踐中,目前使用 Jenkins 版本爲 2.67。(穩定版爲 2.60 / 2.73

安裝配置 Jenkins Coding Webhook Plugin

  1. 安裝

    登錄到您的 Jenkins 服務器。選擇『系統管理』。

    點擊『管理插件』

選擇『可選插件』,在右上方 『過濾』框中,輸入『coding』,便可看到『Coding Webhook Plugin』。 勾選後,點擊下方的『直接安裝』。若是沒有搜索到結果,能夠點擊右下方的『當即獲取』,獲取後便可看到。

若是搜索不到,還能夠前往 這裏 下載,進行手動安裝。

下面介紹手動安裝的方法:

進入插件列表,選擇上方『高級』標籤 

在『高級』標籤下,上傳插件欄中點擊選擇文件,選中 coding-wehook.hpi

點擊『上傳』按鈕,便會自動上傳後安裝。

2 . 配置項目

在 Jenkins 中選擇新建項目

 

進入項目配置頁面,在源碼管理下選擇 Git,並填入項目地址,以及認證的形式。

在構建觸發器欄中選擇『收到 Coding 發送過來的請求時觸發構建』,並填入相應的選項。

若是須要根據 Merge Request 的構建,先點擊右側的問好。

會展開提示信息。

根據提示信息,回到源碼管理中,點擊『高級』,在 Refspec 中填入+refs/heads/*:refs/remotes/origin/* +refs/merge/*/MERGE:refs/remotes/origin/merge/* ,若是是公開項目,則填入+refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/remotes/origin/pull/*

最後能夠添加構建的腳步。

在 Coding 中配置 Webhook

回到 Coding 中,在項目的設置中選擇添加 Webhook。

添加成功後,便可。

這時,咱們提交一個 Merge Request。

再回到 Jenkins 中,便可看到項目構建的信息。

Jenkins郵件配置

經過控制信息能夠查看每一個JOB工程構建的狀態

藉助 Jenkins Email插件實現網站構建完成,自動發送郵件給相應的開發人員,開發人員,或者測試人員。

Jenkins發送郵件須要安裝Email郵件插件,Email-ext、Token-macro和Email-template.

Jenkins Email郵件配置常見參數:

SMTP server                         郵件服務器的地址

Default Content Type              內容展示的格式,通常選擇HTML

Default Recipients                       默認收件人

Use SMTP Authentication          使用SMTP身份驗證

User Name                                郵件發送帳戶的用戶名

          基於 Jenkins 自動部署網站的流程大體分爲:需求分析----原型分析---開發代碼---提交測試---- Jenkins內網部署---確認上線--- Jenkins  備份數據--- Jenkins 外網部署--發佈完畢--- Jenkins網站測試等,若是發現外網部署的代碼有異常,能夠經過 Jenkins及時回滾,如圖

 

常見問題 :

一、用jenkins怎麼實現發佈和回滾?

回答:發佈:jenkins配置好代碼路徑(SVN或GIT),而後拉代碼,打tag。須要編譯就編譯,編譯以後推送到發佈服務器(jenkins裏面能夠調腳本),而後從分發服務器往下分發到業務服務器上。

回滾:按照版本號到發佈服務器找到對應的版本推送

 

 

連接 :

(易百教程)  Jenkins教程  : https://www.yiibai.com/jenkins/

Jenkins使用簡易教程 (安裝配置) :  https://www.jianshu.com/p/b524b151d35f

(w3c school)Jenkins官方文檔   : https://www.w3cschool.cn/jenkins/

使用Jenkins進行持續集成   :    https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000

 

Jenkins介紹:Jenkins使用教程      : https://www.2cto.com/kf/201712/707935.html

Jenkins入門教程之--Jenkins管理  : https://yq.aliyun.com/ziliao/321229

Jenkins   系列   :  https://yq.aliyun.com/wenzhang/blog_2636?spm=a2c4e.11155472.0.0.2ab86b04oK6x8g

Jenkins部署Maven項目到Tomcat.txt  :  http://www.voidcn.com/code/p-qdirodfe-q.html

Jenkins   系列     :  https://testerhome.com/search?q=Jenkins

Jenkins安裝和配置 (ubuntu16.04)  :https://www.jianshu.com/p/1a7f46896c40

Linux下安裝配置Jenkins              :        http://blog.51cto.com/fangwei009/2087624

實戰Jenkins+SVN+tomcat持續集成發佈             :         http://blog.51cto.com/fangwei009/1977933

Centos7.3系統下搭建Jenkins+ant+Jmeter持續集成自動化搭建步驟       :         http://blog.51cto.com/fangwei009/1954030

Jenkins+Ant+Jmeter搭建持續集成的接口測試平臺(轉)      :      http://blog.51cto.com/fangwei009/1952504

jenkins實現自動化部署及服務重啓-初級             : http://blog.51cto.com/vekergu/1627955

 

JMeter學習(三十七)Jmeter錄製手機app腳本      :        http://blog.51cto.com/fangwei009/1911634

ant+jmeter 在Linux環境下接口自動化測試環境搭建(2)      :     http://blog.51cto.com/fangwei009/1911218

ant+jmeter+Jenkins接口自動化測試實戰(1)         ;           http://blog.51cto.com/fangwei009/1910388

jmeter下載及安裝配置       :      http://blog.51cto.com/fangwei009/1910385

Windows下ant環境搭建        :      http://blog.51cto.com/fangwei009/1910384

 

持續集成接口自動化-jmeter+ant+jenkins(一)        : http://blog.51cto.com/fangwei009/1906033

Jenkins+Jmeter+Ant自動化集成環境搭建              :         http://blog.51cto.com/fangwei009/1906030

windows下安裝jenkins           : http://blog.51cto.com/fangwei009/1882542

Jmeter分佈式壓測    :       http://blog.51cto.com/fangwei009/1886976

使用JMeter建立數據庫(Mysql)測試     :    http://blog.51cto.com/fangwei009/1877567

JMeter建立FTP測試服務器上傳下載性能       : http://blog.51cto.com/fangwei009/1866834

使用Jmeter進行http接口測試         :         http://blog.51cto.com/fangwei009/1773724

JMeter安裝教程       :      http://blog.51cto.com/fangwei009/1751611

 

 

windows服務器部署多個不一樣端口的tomcat      :     http://blog.51cto.com/fangwei009/1857337

windows查看端口占用以及關閉相應的進程 : http://blog.51cto.com/fangwei009/1854142

Jenkins與Docker的自動化CI/CD實戰            :  https://mp.weixin.qq.com/s/gZl9nQuPtMsekjNBcdfE8g

 

jenkins 按標籤發佈   : http://blog.51cto.com/sgk2011/1927169

jenkins實戰安裝java maven項目   : http://blog.51cto.com/sgk2011/1926750

jenkins實戰之發佈一個php小的項目   : http://blog.51cto.com/sgk2011/1926295

jenkins的安裝配置 置頂  : http://blog.51cto.com/sgk2011/1926270

Jenkins+Maven+SVN+Nexus 搭建持續集成環境  :  http://blog.51cto.com/abcdocker/2137268

Jenkins 自動化部署上線         :   http://blog.51cto.com/abcdocker/2136114

Jenkins (8篇)  ; https://www.cnblogs.com/sparkdev/tag/CI%2FCD/

 

053-Jenkins : https://mp.weixin.qq.com/s/1fN3fbq9jO9lGzEz2-igGw

Jenkins  系列 : https://www.cnblogs.com/fawaikuangtu123/category/1386781.html

CentOS 7 Gitlab+Jenkins持續集成+自動化部署     :   https://www.cnblogs.com/bigdevilking/p/9544476.html

CentOS 7 部署Gitlab+Jenkins持續集成(CI)環境 :https://www.cnblogs.com/bigdevilking/p/9543092.html

CentOS 7 部署GitLab : https://www.cnblogs.com/bigdevilking/p/9539368.html

詳解 Jenkins 自動化部署平臺  :  https://mp.weixin.qq.com/s/Gnqsrh_UIarsd2det7WOkA

sonar+Jenkins 構建代碼質量自動化分析平臺https://mp.weixin.qq.com/s/UuvsM-p8xveNlgkv9OC51Q

相關文章
相關標籤/搜索