1. 程式人生 > >jenkins自動化構建

jenkins自動化構建

最近用C#開發了一個office外掛,主要實現將本地檔案一鍵上傳儲存,或者將儲存的檔案在wps或word等中開啟,以及在outlook中生成訪問連結。

開發過程中一直是用vs2017部署的,之前是我獨立開發的,但是之後需要多人共同開發,從git上拉的程式碼就有些亂,很多沒必要的東西。所以考慮程式碼只保留必要部分刪除中間資料夾obj和生成的bin。並且使用jenkins自動化編譯以及打包。

使用jenkins做構建,其實本質就是從git上下載程式碼到一臺虛擬機器上,然後執行相關的編譯軟體去編譯它,最後將生成的包傳送到FTP

拉程式碼

首先,將程式碼提交到git,在相關資料夾寫好批處理指令碼,並寫好iss指令碼,記錄SSH
根據批處理指令碼放置的位置,修改ssh
在Jenkins上新建專案,構建自由風格專案,如果有已生成的專案,可以選擇複製已有的Item
進入專案點選配置
設定專案名稱和描述

在原始碼管理一欄,選擇Multiple SCMs,點選Add SCM,選擇Git
以我的構建為例
首先設定原始碼的git Repository,在URL輸入ssh
Credentials 如過已有獲得認證的賬號,可以選擇,第一次登陸,需要點選高階,然後輸入訪問git的使用者名稱和密碼
接著點選Add Branch新增分支,根據git所用分支輸入,如*/develop
最後點選Additional Behaviours那裡的Add選擇Check out to a sub-directory在Local subdiretory for repo 裡填寫剛才SSH訪問的塊
大型的程式碼塊,一般會做一個通用打包模組,把所有的打包指令碼都放在這個部分
所以我這裡還需要再下載打包模組。
這裡寫圖片描述


然後設定下要在哪個虛擬機器構建

這裡寫圖片描述
到這裡就成功將程式碼下載到了指定的構建機上。

編譯

編譯.net我這裡使用的是MSBuild,首先將MSBuild裝到構建機上,然後在系統設定頁面設定好它的路徑。
這裡寫圖片描述
接下來就可以使用它來編譯C#專案了。這裡寫圖片描述
如圖第二行是sln檔案的路徑,在工作空間裡,其實就是構建機裡的某個資料夾。
第三行就是輸入編譯的相關命令。

打包

編譯成功後,可以將dll檔案打包。
在構建環境裡勾選 Delete workspace before build starts
接著在構建部分點選增加構建步驟,選擇Execute Windows batch command
寫入批處理命令相關的檔案複製到一個新建的資料夾,注意用相對路徑來寫。
這裡最好是在本地寫兩個指令碼,一個批處理指令碼用來複制相關檔案並使用inno setup呼叫iss檔案,一個iss指令碼用來打包。
這樣在jenkins上只需要在工作空間裡找到這個批處理指令碼執行就好了。

打包完成後,將安裝包傳送到FTP
這裡寫圖片描述

可能遇到的問題

一 ERROR: Couldn’t find any revision to build. Verify the repository and branch configuration for this job.
原因:分支路徑設定錯誤了,根據自己的git路徑使用的分支(在本地資料夾裡的.git資料夾裡開啟config檢視)
解決方法:將原始碼管理部分的Git模組中的分支改一下,比如把這裡的/$Branch改為/develop
這裡寫圖片描述
二’*.bat’ 不是內部或外部命令,也不是可執行的程式或批處理檔案。

原因:在呼叫git上的批處理檔案時,cd的路徑有問題,導致進入了錯誤的路徑,尋找不到這個批處理檔案
解決方法:在成功和git通訊並下載相關檔案到Jenkins之後,會自動生成工作空間,去工作空間裡找到*.bat批處理檔案,記下路徑,然後閱讀上面的批處理命令,看一下在這一句之前,cd到了哪個資料夾,再做相應調整(cd.. 是進入上層目錄,cd\ 是進入根目錄)