天天看點

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

持續內建(Continuous Integration)指的是,頻繁地(一天多次)将代碼內建到主幹。 

持續內建的目的,就是讓産品可以快速疊代,同時還能保持高品質。 

它的核心措施是,代碼內建到主幹之前,必須通過自動化測試。隻要有一個測試用例失敗,就不能內建。

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

持續內建可以把工程師從繁瑣的任務中解放出來,提高工作效率。并且能有效減少釋出版本中的錯誤和 Bug 數量。

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

使用Jenkins建構Coding項目

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

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

安裝配置 Jenkins Coding Webhook Plugin

  1. 安裝

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

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

選擇『可選插件』,在右上方 『過濾』框中,輸入『coding』,即可看到『Coding Webhook Plugin』。 勾選後,點選下方的『直接安裝』。如果沒有搜尋到結果,可以點選右下方的『立即擷取』,擷取後即可看到。

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

果搜尋不到,還可以前往 這裡 下載下傳,進行手動安裝。

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

進入插件清單,選擇上方『進階』标簽 

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

配置項目

在 Jenkins 中選擇建立項目

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目
持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

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

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

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

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

如果需要根據 Merge Request 的建構,先點選右側的問号。

會展開提示資訊。

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

根據提示資訊,回到源碼管理中,點選『進階』,在 

Refspec

 中填入 

+refs/headsMERGE:refs/remotes/origin/mergeMERGE:refs/remotes/origin/pull/*

最後可以添加建構的腳步。

持續內建 自動化建構、測試、部署您的Coding代碼使用Jenkins建構Coding項目

推薦閱讀:

基于spring boot的swagger API實戰

Kafka 入門教程

你可以不懂但一定要知道的代碼審查 Code Review

轉載于:https://www.cnblogs.com/Javame/p/9576752.html