前言
網上大多數都是針對主流的Spring Cloud、NET Core的CI/CD方案。但是目前國內絕大部分的公司因為一些歷史原因無法簡單的把項目從NET Framework切換升級到NET Core,又急切的需要引入CI/CD流程來提高開發體驗和效率。因此,本系列博客針對這一問題,旨在解決NET Framework的持續集成難題。
面臨的難題
- 項目結構復雜,且源代碼工程結構多為一個解決方案多個項目的模式
- 構建比較困難,有一些項目的包管理還是以文件路徑的引用方式
- 前后端未完全分離,目前很多公司的NET項目,前端人員和后端人員分開,但是項目源碼還是在同一個工程
- 項目的配置文件在多環境下很難做到自動調整。無論是使用自帶的多環境配置文件語法還是對接目前市面上的配置中心都比較困難
- 部署無法像NET Core一樣打包鏡像,推送到鏡像管理平台,然后再做升級
整體思路
鑒於以上幾個難題,對於NET Framework項目的CI/CD搭建方案其實很有限。我選擇的方案大體是Gitlab+Jenkins+MSbuild+Rsync
下面介紹一下這幾塊的分別的分工和作用:
- GItlab:源代碼管理、配置Webhook、工程師提交分支代碼觸發相應的Jenkins的item任務
- Jenkins:負責管理構建部署持續集成流水線的每個階段
- MSbuild:負責構建NET Framework項目,生成發布文件
- Rsync:負責把構建好的發布文件部署到指定的服務器上
流程圖
這個流程圖是適用於前后端在同一項目不同分支的情況,可以根據項目的實際情況做出相應的改變、當然主體流程不會變
那我們接下來就實際的開始搭建
Windows服務器安裝Jenkins
一、下載安裝包
官方下載地址:Jenkins安裝包下載地址
直接選擇Windows環境的LTS版本安裝包
二、安裝JDK
因為Jenkins是需要依賴Java環境的,所以需要先在服務器安裝JDK。博主在這里直接把JDK安裝包放到這兒,JDK的安裝過程和環境變量配置網上很多,我就不在這兒贅述了。
JDK百度網盤鏈接 提取碼:5rpx
三、安裝Jenkins
安裝比較簡單,跟着提示一直下一步就好了
1、配置服務器的賬號密碼
2、選擇Jenkins服務端口
3、配置JDK路徑
4、安裝完成,Jenkins會自動打開瀏覽器的對於端口的頁面(比如我默認的:8080端口)。這會有點久,可能需要十幾分鍾,先去下面第四步去配置Jenkins的工作目錄然后重啟服務,不然重啟之后又要初始化
四、配置Jenkins
Jenkins安裝好之后,會有一個Jenkins.xml配置文件。我們需要去里面配置一下Jenkins的工作目錄
1、打開Jenkins安裝路徑下的Jenkins.xml配置文件
2、配置工作目錄
3、修改完畢,重新啟動服務使配置生效
4、這時候Jenkins的管理網頁也初始化好了,安裝提示在指定路徑找到密碼文件,復制密碼到文本框內,然后點擊繼續
5、這里點擊 選擇插件來安裝,因為其實有一些插件,我們是不需要的,根據自己的需求來就好了
6、然后就是勾選自己想要的插件來安裝的,我下面列舉一下必須的但是Jenkins默認沒勾選的插件,然后點擊安裝等插件自動安裝完畢,Jenkins就算是安裝完成了
- MSBuild:編譯NET Framework項目
- GitLab:源代碼管理,拉取項目代碼,配置分支提交Webhook
- Role-based Authorization Strategy:Jenkins的角色權限管理,分配團隊成員不同的權限
完
第一篇就寫這么多,主要是對整體的思路做了一個簡單的介紹,然后說明如何安裝和配置Jenkins。下一篇我會講解如何配置Jenkins的item從Gitlab拉取代碼。
整個系列我預計大概有8~10篇,主要是我看網上的對這些的講解都比較零散且粗略,我想講解的細致一些,避免大家在搭建的過程中趟一些我遇到的坑。