通常的ci, cd過程是在一個linux機器上執行。但Cocos Creator不對Linux進行官方維護和支持,而非官方的Cocos Creator Linux鏡像構建出來的包有問題。咱們的項目都pipeline用的是阿里雲服務器,ubuntu系統,所以咱們只能在本地的Mac機子上進行構建。linux
一開始,咱們的CI CD策略是本地構建,pipeline部署。具體流程是本地構建,構建出來的文件提交到gitlab進行版本控制,Jenkins pipeline監控到構建文件的變化就進行容器化部署。git
該方案存在的本質問題是:構建不受約束,部署隨着構建進行自動化部署,這樣部署也是隨意不受約束的。試想如下幾種狀況:docker
這倆問題,團隊每次部署前達成一致,加點人爲控制因素是能夠解決。當團隊有了QA,QA每次須要推新版本時,都須要Dev支持......那就好好的支持一下吧ubuntu
爲了不QA不定時的找麻煩,固然,更重要的問題是這樣的發佈對於產品環境來講隨時都是定時炸彈,咱們必須改進。目前CI CD策略的痛點是:代碼隨時隨地均可以隨意上生產。項目的侷限是:構建目前只能在本地(也許再搗騰段時間能夠在環境上)。服務器
基於痛點和侷限,改進的方案是:架構
和原方案不一樣的是,在部署以前,增長一個代碼更新的步驟。gitlab
Jenkins multi step pipeline的實現使用了一個視圖插件build pipeline plugin。添加該view的方式,參考:buildPipelinePluginpost
build pipeline plugin貌似只支持free style 的pipeline類型,所以全部pipeline都設置爲free-style類型。ui
該pipeline的配置:阿里雲
裏面有兩個文件