前端工程化:围绕Jenkins打造工作流的过程
背景
1年前入職時(shí),公司前端部門(mén)的靜態(tài)代碼部署都是用ftp工具拖拽部署,沒(méi)有記錄,沒(méi)有關(guān)聯(lián),經(jīng)常造成許多困擾的問(wèn)題,
比如:今天有沒(méi)有其他人在我要部署的路徑上工作?我的代碼為啥被蓋掉了?被誰(shuí)蓋掉的?啥時(shí)候蓋掉的?
本地build,ftp拖拽部署這種方式,導(dǎo)致git版本與手動(dòng)的構(gòu)建、部署沒(méi)啥關(guān)聯(lián),更有在本地寫(xiě)完代碼部署上去后,壓根沒(méi)傳git這種失誤可能發(fā)生。
靠人去遵守規(guī)范來(lái)控制工作流,總會(huì)有失誤、疏忽的發(fā)生。
想法
要靠機(jī)器和代碼去規(guī)范工作流,提高效率、準(zhǔn)確性,實(shí)現(xiàn)真正的前端工程化。
具體目標(biāo)
不討論通用模板(項(xiàng)目開(kāi)發(fā)層面),只關(guān)心構(gòu)建以后的事情,精確的說(shuō),就是從npm run build:xxx 這個(gè)腳本開(kāi)始對(duì)接,npm run build:xxx之前的事情不在本文討論范圍內(nèi)。 實(shí)現(xiàn)構(gòu)建-部署-測(cè)試(多個(gè)環(huán)境)-沙箱-上線(可回滾)的全部半自動(dòng)化流程把控。
為什么選擇jenkins:優(yōu)先選擇強(qiáng)大的開(kāi)源工具,避免重復(fù)造輪子,主要原因是插件特別豐富,基本可以滿足所有實(shí)際需求
先把成果貼上來(lái),整體示意圖
核心思想是分離構(gòu)建、部署,所以每個(gè)項(xiàng)目,jenkins會(huì)建兩個(gè)job。
jenkins服務(wù)部署在公司內(nèi)網(wǎng)堡壘機(jī)上,使用tomcat管理jenkins的war包,占用系統(tǒng)服務(wù)、全量部署定時(shí)任務(wù)都跑在同一臺(tái)堡壘機(jī)上(Linux)。
因?yàn)閮?nèi)容很多,所以我直接采用一張圖 + 注釋 來(lái)零碎的講解每個(gè)功能的實(shí)現(xiàn),因?yàn)槊總€(gè)公司的前端業(yè)務(wù)環(huán)境都不一樣,所以我也不打算花太大的筆墨去描述所有的實(shí)現(xiàn)。寫(xiě)這篇文章的目的就是可能某個(gè)思想、某一段對(duì)jenkins插件的使用等等會(huì)幫助到有類似需求的人。注釋會(huì)是截圖,或者是關(guān)鍵代碼,對(duì)應(yīng)圖中的數(shù)字。
先放幾張實(shí)際使用的圖
jenkins項(xiàng)目界面部分截圖
構(gòu)建job部分截圖
部署job部分截圖(使用jenkins-pipeline實(shí)現(xiàn)流程圖)
多套測(cè)試環(huán)境占用系統(tǒng)部分截圖(占用環(huán)境后別人無(wú)法部署,全量腳本也不會(huì)覆蓋)
全量部署腳本日志展示部分截圖
整體示意圖的注釋(每一條都對(duì)應(yīng)示意圖中的紅色阿拉伯?dāng)?shù)字):
整篇文章比較零散,主要講了一下我對(duì)前端工程化探索的思想和實(shí)踐,因?yàn)槭诸^的需求也很多(18年一起工作的好幾個(gè)小伙伴被裁了,你猜他們剩下的工作誰(shuí)來(lái)做),斷斷續(xù)續(xù)搞了兩三個(gè)月,目前這套系統(tǒng)已經(jīng)穩(wěn)定運(yùn)行幾個(gè)月了,不斷的完善使它現(xiàn)在很好用,線上再也不會(huì)出現(xiàn)因?yàn)橥四承┓种Р僮鲗?dǎo)致的bug;這套系統(tǒng)的優(yōu)點(diǎn)就是,基于開(kāi)源jenkins+核心思想,就可以很快的通過(guò)node/shell/pipelinescript搭建起一套完整的系統(tǒng),成本極低!超級(jí)實(shí)用的功能卻實(shí)現(xiàn)很多!
如果你覺(jué)得讀完沒(méi)啥收獲或我寫(xiě)的實(shí)在不知所云,那就好好看看說(shuō)明12,我覺(jué)得把這一個(gè)小技巧分享出去,并且讓你有所收獲,那也值了,畢竟寫(xiě)作能力有限~
總結(jié)
以上是生活随笔為你收集整理的前端工程化:围绕Jenkins打造工作流的过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: some demos
- 下一篇: 百度高管:问心无愧
