使用jenkins自動打包ue4
Jenkins介紹:
全球領先的開源自動化伺服器,Jenkins 提供了數以百計的外掛來支援構建、部署和自動化任何專案
Jenkins的特點:
持續整合(Continuous integration ,簡稱CI。)
持續整合正是針對這一類問題的一種軟體開發實踐。它倡導團隊開發成員必須經常整合他們的工作,甚至每天都可能發生多次整合。而每次的整合都是通過自動化的構建來驗證,包括自動編譯、釋出和測試,從而儘快地發現整合錯誤,讓團隊能夠更快的開發內聚的軟體。
持續整合是一個開發的實踐,需要開發人員定期整合程式碼到共享儲存庫(比如說svn或git等)。這個概念是為了消除發現的問題,後來出現在構建生命週期的問題。持續整合要求開發人員有頻繁的構建。最常見的做法是,每當一個程式碼提交時,構建應該被觸發。
在ue4打包中利用jenkins來自動打包,svn每更新一次ue4包,在jenkins就自動打包編譯(構建)一次,可以將輸出(錯誤或者成功資訊)通過郵件等方式傳送給指定伺服器或主機。
持續整合的作用:
保證團隊開發人員提交程式碼的質量,減輕了軟體釋出時的壓力;
持續整合中的任何一個環節都是自動完成的,無需太多的人工干預,有利於減少重複過程以節省時間、費用和工作量;
Jenkins對UE4自動打包步驟:
安裝好Jenkins後再網頁輸入http://localhost:8080/
首先要安裝java jdk1.8,svn外掛(jenkins新增svn外掛,電腦本身也要裝svn),配置路徑,在左側系統管理->系統設定->右側點選高階,主目錄是jenkins的安裝目錄,工作空間根目錄是實時更新svn後獲取到的專案放到該目錄下,這個要自己設
新增相關功能的外掛:Jenkins可以新增許多第三方外掛,做法:
系統管理->管理外掛->可選外掛
接下來進入正題,新建任務,配置:
具體配置如下:
在原始碼管理裡使用svn,安裝好svn,第一個填寫好svn的專案路徑,第二個add一個svn的使用者名稱和密碼,第三個是把svn更新後的專案放到JenkinsWorkSpace檔案下的GK資料夾中
這裡日程表的意思是每20分鐘檢測一次有沒有更新
在構建中我們分成兩個部分,打包客戶端和打包服務端,都讀取的是D:\JenkinsWorkSpace\GK路徑的專案,因此專案.uproject要用原始碼,echo後面的長線主要是輸出時便於區分客戶端的輸出還是服務端打包的輸出。
第一個路徑是原始碼版UE4路徑,第二個-project路徑是獲取的專案路徑,兩個命令獲取的專案路徑都一樣,最後輸出的路徑不一樣,第一個客戶端打包出來路徑放到D:\ue4project\Client中第二個伺服器打包出來路徑放到\Server中,後面跟上svn版本號和構建的專案id,%%中間引用的是環境變數列表,參閱可用環境變數列表。
然後儲存,對專案進行立即構建,就通過命令列自動打包ue4.
使用Jenkins自動將控制檯輸出日誌傳送到指定郵箱:
詳細檢視:
https://blog.csdn.net/fullbug/article/details/53024562
由於Jenkins傳送郵件通過java傳送,這是因為騰訊需要認證,才用平時的QQ郵箱使用者名稱和密碼已經不能登陸了。會報530錯誤,因此密碼要填授權碼,詳細參考:
https://blog.csdn.net/frankcheng5143/article/details/50436207
最後再Jenkins的系統管理-->系統設定中,我用的qq郵箱傳送郵件,這樣填,使用者名稱就不加@qq.com,密碼不是qq密碼,而是上面連結裡的授權碼
Extended E-mail Notification這樣設定
按照上面兩個教程做後接著下面繼續:
最後在配置中:
在郵箱可以接收
在專案構建中,如果專案編譯失敗,自動根據不同的提交者傳送給他們自己郵箱步驟:
點選專案,修改記錄
對特定的提交使用者編輯,畫紅線是提交者的使用者名稱,設定
在他的資訊中修改郵件地址
在什麼時候觸發傳送郵件功能呢?比如只有專案構建失敗情況下,在任務的配置---->構建後的操作
把接受者原來填的是預設接受者,去掉
Advanced Settings中,Triggers是什麼時候觸發,把Always刪了,只在Failure觸發,send to提交者(Upstram Committers)在高階中把Recipient list清空即可