轉轉客戶端持續交付—魯班的構建管理
背景 隨著業務的發展,轉轉除了轉轉APP外,開發了越來越多的獨立APP去滿足業務;作為轉轉最早的客戶端團隊,除了滿足自身業務需求外,也需要提供公司級通用的APP持續交付基礎能力。可快速擴充套件到其他APP使用,提高整體工作質量和效率。魯班在持續交付的整體流程中,主要承擔:APP版本流程、包構建、APP專項測試等能力。
魯班的構建管理
APP的持續交付儘可能的將整體專案流程串了起來。開發階段的程式碼分支由beetle進行管理,詳見文件《轉轉客戶端持續整合--分支管理》
本次主要給大家分享魯班的包構建管理相關能力。
開發測試階段,包構建頻次非常高,整個階段經歷:提測-測試-修復-測試的一個反覆過程,構建管理提供了這個環節的基礎能力,需要提供穩靠,儘可能自動化,減少人工重複消耗的能力。
結合背景和我們的目標需求,在設計魯班的構建管理模組時,主要包含了以下幾個點:
1、通用性,可擴充套件
構建能力不僅僅是給轉轉APP,需要可快速擴充套件到公司其他APP;並支援各業務自定義自己的打包指令碼。
構建指令碼將通用配置和指令碼內容提供公共打包模板,提供視覺化的操作,方便使用者操作。滿足基礎的構建要求。
除了公共構建引數外,又提供了自定義的擴充套件引數,便於各業務在基礎構建指令碼外擴充套件自己的業務邏輯。
2、構建引數模板化
魯班支援將不同引數組成一個個構建模板,方便構建人員根據不同的場景打出不同用途的包。
除了提供的基礎測試包、發版包外,支援各業務根據自己的需求定製個性化的構建模板。模板可以簡化構建填寫內容,有效避免人為填寫出錯等情況。
通過模板,可減少使用者操作,只填寫可變的部分,避免一些關鍵資訊填寫錯誤的問題出現。
3、觸發構建機制
目前觸發機制有兩種:自動觸發或手動觸發
- 自動觸發:開發提交tag自動觸發,減少人的介入
- 手動觸發:包括開發在beetle上觸發編譯操作或在魯班平臺上手動構建需要的包
beetle上編譯觸發:和整體開發流程結合,只構建有效版本,避免一些不必要的tag過多佔用構建資源
魯班平臺構建:適用需要特殊場景的包,手動建立
兩種方式,滿足了各業務的不同的場景需求,根據自身業務特性去選擇觸發方式。
4、構建結果資料儲存
包含構建歷史和打包結果的儲存。分別記錄構建資訊和打包結果的資訊,結果可查詢,另外會儲存包大小等資訊,可生成報表檢視階段包大小變化等。
構建結果儲存為二維碼,方便使用者掃碼安裝。
5、串聯發版能力
當選擇發版模板時,會觸發android和ios的發版功能,自動完成發版操作
發版的同時儲存版本資料結果,記錄版本歷史節點,便於後續版本追溯。
其他
構建管理還關聯了APP的一些自動化、檢查項等配置。例如靜態程式碼掃描,冒煙,UIcase等,本次就不詳細介紹了。
後續靜態程式碼掃描等基礎能力進一步完善後,會設定指標對整體APP的流程做一個控制,對APP的交付有一個准入準出規範標準。
大致流程如下:
以上為轉轉客戶端,魯班提供的構建相關能力,歡迎大家交流討論~
作者:孫敏
轉轉研發中心及業界小夥伴們的技術學習交流平臺,定期分享一線的實戰經驗及業界前沿的技術話題。
關注公眾號「轉轉技術」(綜合性)、「大轉轉FE」(專注於FE)、「轉轉QA」(專注於QA),更多幹貨實踐,歡迎交流分享~
- 敏捷用例平臺實現線上高效化用例評審
- 轉轉測試環境docker化實踐
- 轉轉微服務容量管理實踐
- RPC框架泛化呼叫原理及轉轉的實踐
- 轉轉使用者畫像平臺實踐
- ClickHouse在自助行為分析場景的實踐應用
- 轉轉用例平臺系列 - 腦圖元件2.0
- 轉轉風控「違禁物品識別」 背後的那些事兒
- App Push 通用測試方案
- “軟硬結合”- 轉轉搜尋少無結果模組簡介
- FaissPQ索引簡介
- 轉轉客戶端持續交付—魯班的構建管理
- 責任鏈模式在轉轉精準估價中的應用
- C2B模式下優惠券架構演進
- 當轉轉嚴選訂單遇到狀態機
- 基於位元組碼的統一異常上報實踐
- 新朝舊將 vite和webpack煮酒論英雄
- IPv4和IPv6何去何從
- MySQL使用ReplicationConnection導致的連線失效分析與解決
- 轉轉統一許可權系統的設計與實現(後端實現篇)