簡評:持續(xù)集成(Continuous Integration)一直被認為是敏捷開發(fā)的重要實踐之一,也是提升軟件質(zhì)量的重要手段疚俱。特別在團隊協(xié)作中,為項目添加持續(xù)集成還是非常有必要的忘嫉。
Continuous Integration - 持續(xù)集成渴丸,持續(xù)集成是一種軟件開發(fā)實踐,通過自動化的構(gòu)建(包括編譯日戈、發(fā)布和自動化測試)來驗證询张,從而幫助盡快發(fā)現(xiàn)集成錯誤。
這里我們以 github 和 bitrise.io 為例浙炼,因為比較簡單份氧,專注于移動應(yīng)用,功能也比較豐富弯屈。
首先蜗帜,創(chuàng)建 bitrise.io 的賬號并添加你的 github 項目,主要有兩件事要做:
- 添加 webhook
- 分支保護
Webhook 能當你的倉庫發(fā)生某些事件時通知外部服務(wù)(push, pull-request 等等)资厉。對于 bitrise.io 來說厅缺,當執(zhí)行了 pull 或 pull-request 時會自動進行 build。
當你將 github 賬號和 bitrise.io 的賬號進行了綁定,會自動添加 webhook湘捎。
當然诀豁,也可以手動添加,首先在 Code 頁面中復(fù)制 webhook 地址:
之后消痛,在 github 的項目設(shè)置頁面中選擇 Webhooks且叁,把復(fù)制好的 url 粘貼進 Payload URL 欄,再選擇 Send me everything秩伞,最后點擊 Add webhook 按鈕:
分支保護是禁止強推,防止分支被刪除并在分支合并前進行狀態(tài)檢查欺矫。
為了開啟分支保護纱新,在 github 項目設(shè)置頁面中選擇 Branches,再勾選想要保護的分支:
Status check 能保證在合并 pull request 之前先執(zhí)行 bitrise.io build穆趴,下面是幾個示例:
Build
bitrise.io 的 build 有下列的生命周期:
- Build 觸發(fā)
- Workflow 執(zhí)行
- App 準備就緒
**Trigger **決定了「什么時候」和「build 什么」脸爱。打開 bitrise.io 項目頁面,點擊 Workflow 標簽并選擇 Triggers 就可以設(shè)置 Trigger 了未妹。
下面就是當從 dev 分支給 prod 分支發(fā)送 pull 請求時執(zhí)行 workflow 的 trigger簿废。
**Workflow **定義了 build 的步驟,可以按照你的需要來進行自定義络它。同樣族檬,在bitrise.io 項目頁面中,點擊 Workflow 標簽化戳。在這里你就能創(chuàng)建或編輯 workflow单料。
下面,就以一個 workflow 為例:
- Clone 項目倉庫
- 執(zhí)行 gradle 任務(wù) assembleProdRelease 生成 .apk
- 執(zhí)行 gradle 任務(wù) lintProdRelease 檢查是否有 lint issue
- 執(zhí)行 gradle 任務(wù) pmd 檢查是否有 pmd issue
- 執(zhí)行 gradle 任務(wù) findbugs 檢查是否有 findbugs issue
- 將 apk 文件部署到 bitrise.io 進行分發(fā)
當 build 完成后点楼,將能夠看到有關(guān) build 的詳細信息扫尖,比如用時、狀態(tài)掠廓、日志等等换怖。
最后,你會得到一個公開的 apk 下載地址:
如果哪里出了問題蟀瞧,你可以檢查 build 日志:
Bitirse 支持的 Integration:
原文:Configuring Android Project?—?Continuous Integration**
歡迎關(guān)注知乎專欄「極光日報」沉颂,每天為 Makers 導(dǎo)讀三篇優(yōu)質(zhì)英文文章。
相關(guān)閱讀: