一、H5遊戲開發
進行H5遊戲開發,不僅僅是開發這邊事情,還會涉及到美術、策劃、以及測試。所以必須爲他們也搭建一些運行程序,以便可以及時地瞭解和測試到最新的開發進度。同時遊戲本身也會分成諸多版本,例如測試版、穩定版、數值版、外服等等。這一列的遊戲運行環境,總不能手工去進行遊戲開發內容的同步,必須做到自動化,才能提高開發效率。因爲必須搭建一個自動化構建服務器來滿足這一些的需求。
二、自動化構建(持續集成)介紹
百度的定義:
持續集成是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。
三、Jenkins介紹和安裝
jenkins是一個開源項目,提供了一種易於使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注於更爲重要的業務邏輯實現上。同時 Jenkins 能實施監控集成中存在的錯誤,提供詳細的日誌文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。
- 運行環境:windows 7 這裏的win是在linux上虛擬機安裝的win77
- Jenkins
下載地址:https://jenkins.io/download/
安裝過程可能會寫漏一些(不是安裝時寫的blog),不然這個安裝基本沒什麼困難。安裝好之後會跳轉到這個頁面
http://localhost:8080/securityRealm/firstUser
在這裏設置自己的帳號密碼
爲了確保Jenkins由管理員安全設置,密碼已經寫入日誌(不知道在哪裏找到?)和服務器上的這個文件:
在瀏覽器裏輸入
C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword
就會得到一個密碼
d41505929a244d428cef21942432ea51
輸入進去,就會看到
插件擴展了Jenkins的附加功能,以支持許多不同的需求。
一個是安裝社區最有用的插件,一個是選擇安裝插件,自己根據需要來選擇了,反正後面也是可以自己再安裝插件的。比我我安裝區最有用的插件,如下圖
如果熟悉的最好是自己手動安裝,選擇自己項目需要的,比如svn和git,hg的選擇,ant或者maven選擇等等
四、安裝Jenkins插件
因爲項目代碼使用了Mercurial作爲代碼管理,所以必須安裝相應的插件。
點系統管理,然後選擇插件管理
添加、刪除、禁用或啓用Jenkins功能擴展插件
選擇Mercurial plugin
Allows Jenkins to check out projects from the Mercurial SCM.
五、創建Egret H5遊戲的自動化構建任務
開始部署我們的Egret項目的自動化構建了。
源碼管理:選擇你自己項目的源碼管理,有3個選項,svn、git和Mercurial
這裏我採用了Mercurial
Credentials 是填你實際的hg賬戶密碼
構建觸發器: 選擇 Poll SCM
參數:H/30 * * * *
每半小時檢測一下,如果hg有更新,則會進行自動構建
具體怎麼配置自己想要的時間,可以查Poll SCM的詳細設置。
創建兩個cmd指令
添加構建步驟:
Execute Windows batch command
這裏是調用windows的cmd指令,所以只要cmd可以輸入的指令這裏都可以填入,可以填入多行,也可以執行bat腳本
build.bat
egret clean //重置項目中的引擎代碼
再一個創建指令
Execute Windows batch command
egret build //構建項目
這裏根據自己項目需要來創建腳本bat或者直接輸入cmd指令。
點擊構建
六、解決找不到egret命令的錯誤
有些系統可能會報下面的錯
C:\Program Files (x86)\Jenkins\workspace\pal_dev>egret clean 'egret' 不是內部或外部命令,也不是可運行的程序 或批處理文件。
C:\Program Files (x86)\Jenkins\workspace\pal_dev>exit 9009 Build step 'Execute Windows batch command' marked build as failure Finished: FAILURE
自己在cmd輸入egret卻可以。
如果在path配置egret指令還是不行,那麼就直接加全稱好了。
where egret
可以找到egret指令的位置,如下:
C:\Users\sodaChen\AppData\Roaming\npm\egret.cmd
最終是這樣:
C:\Users\sodaChen\AppData\Roaming\npm\egret.cmd build
七、最終看下輸出結果:
Started by user client
Building in workspace C:\Program Files (x86)\Jenkins\workspace\pal_dev
[sword_dev] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" showconfig paths.default
[sword_dev] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" pull --rev default
pulling from http://192.168.0.10:7582/
還可以看到執行其他執行的信息:
C:\Program Files (x86)\Jenkins\workspace\pal_dev>build.bat
C:\Program Files (x86)\Jenkins\workspace\pal_dev>cd src/core
C:\Program Files (x86)\Jenkins\workspace\pal_dev\src\core>hg pull --verbose http://192.168.0.10:6008/
最後是白鷺的編譯信息
C:\Program Files (x86)\Jenkins\workspace\pal_dev>egret build
您正在使用的引擎版本爲 5.0.2
正在編譯項目...
項目共計編譯耗時:21.66秒
Finished: SUCCESS