如何實現 Android 應用的持續部署?
構建一個高質量的 Android 應用 最大的挑戰是什麼? 在整個開發流程中,也許 Coding 時莫名的 bug,也許是 Android 開發相容性問題,多版本多渠道自動打包問題,也有開發工具選擇等等。
每個不同段位的 Android 開發者,都會有不同的答案。如何自動化整個開發-打包-分發的流程也許真正需要思考。
這篇文章將通過實際的教程向大家展示使用 flow.ci實現 Android 應用自動化持續整合,並將 APK 檔案部署到 fir.im 應用內測平臺。內測分發完成後,使用 Webhook、郵件、Slack 通知參與測試的人員的一系列步驟,讓你全自動化地完成整個開發流程。
瞭解 flow.ci
flow.ci 是融入了 workflow 機制的持續整合(CI)服務,也可以理解為自動化流程平臺,除了整合程式碼、編譯、測試之外,還可以整合常用的工具、靈活自定義流程。1 分鐘即可完成開發測試環境搭建,開啟第一個 Build。
在 flow.ci,我們把專案的開發工作流稱為 flow ,每個 flow 由觸發器和外掛構成。系統根據不同的語言和環境提供對應的 flow 模版,觸發器和外掛。Flow 的自定義非常簡單,只需要 One-Click 即可新增你需要的外掛。它可能是一個程式碼靜態分析檢測工具(比如 Eslint),可能是一個資料庫(比如 Mysql/MongoDB/Redis),也可能是一個訊息通知外掛(比如 郵件/Slack)等。
更專注於程式碼,其他的瑣事交給 flow.ci 自動化完成吧 :)
搭建 Android 應用的持續部署
設定 Android 持續部署流程非常簡單:
1.建立專案
2.關聯程式碼倉庫
3.選擇要整合的專案
4.開始你的第一個 Flow
選擇專案型別 Android ,開啟預設的 flow 模板 ,包括 Intialize - Git Clone - Cache - Build 的流程。
5.選擇語言版本,單擊建立專案
選擇專案語言的版本,除了 Java for Android 外,flow.ci 提供 Node.js , Ruby , PHP , Python 的多語言、多版本的開發測試環境。
後續會支援更多語言。
6.點選“+”新增外掛,自定義 flow
在環境和語言等初始配置完成後,flow.ci 會提供一套 基本 flow 模版,內含通用流程外掛和流程觸發設定。如果你有定製化的需求,點選圖中“+”或者“刪除”“編輯”,實時設定就可以。
7.在外掛列表中搜尋 Infer Analyzer 外掛,選擇新增
Infer Analyzer 是 Facebook 推出的 Java 靜態程式碼分析工具,新增這個外掛到你的 Flow 模板可以幫助攔截早期錯誤。
8. 繼續新增 fir.im Uploader 外掛
fir.im Uploader 外掛將輸出的 apk 檔案上傳到 fir.im 應用內測平臺,新增這個外掛需要新增你的 fir.im 賬號的 API token。此外,該外掛支援變數,可以直接拉取 github 的提交日誌,作為版本更新日誌。
9.完成後,還可以新增郵件、Slack等訊息通知外掛
實現這套自動化流程之後,只需要開發新功能,提交程式碼即可。圖為跑完整個持續部署流程,健康的專案狀態。
繁瑣可循的任務就應該工具化自動化,這是程式設計師們的不懈追求。如果你也想體驗 Android 應用的自動化持續部署,來 http://flow.ci 首頁提交申請,邀請碼隨後會傳送到郵箱。
期待你的反饋。
Happy Building! flow.ci team
相關文章
- 使用流水線外掛實現持續整合、持續部署
- 持續部署單頁應用的7大技巧
- Azure Terraform(八)利用Azure DevOps 實現Infra資源和.NET CORE Web 應用程式的持續整合、持續部署ORMdevWeb
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 使用 GitHub 和 Python 實現持續部署GithubPython
- 持續整合、持續部署、持續交付、持續釋出
- 持續整合、持續交付、持續部署簡介
- SpringBoot+Docker+Git+Jenkins實現簡易的持續整合和持續部署Spring BootDockerGitJenkins
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- 談談持續整合,持續交付,持續部署之間的區別
- CI/CD 持續整合部署實踐
- Jenkins持續部署-Windows環境持續部署探究1JenkinsWindows
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- 用 gitlab-runner 實現微信小程式可持續化自動部署Gitlab微信小程式
- 第2章 實現突破——持續部署、微服務和容器微服務
- 持續部署微服務的實踐和準則微服務
- 持續部署 Microservices 的實踐和準則ROS
- [譯] 如何使用 CircleCI for GitHub Pages 持續部署Github
- 同事反饋環:如何實現持續改進的文化
- 通過Docker容器執行持續整合/持續部署Docker
- Ccover在hudson持續整合中的應用
- 持續部署入門:基於 Kubernetes 實現藍綠髮布
- IMVU如何在實施持續部署的同時確保軟體質量
- Docker+GitLab+Jenkins+kubernetes實現DevOps 持續化整合和持續化部署概念圖DockerGitlabJenkinsdev
- 淺談持續整合的理解以及實現持續整合,需要做什麼?
- 以 egg.js 為例的持續整合(CI)、持續部署(CD)JS
- 身份證識別技術的持續應用
- iOS使用fastlane實現持續整合iOSAST
- Jenkins + git實現持續整合JenkinsGit
- 《轉載》Jenkins持續整合-自動化部署指令碼的實現《python》Jenkins指令碼Python
- 持續整合及部署利器:GoGo
- 還在寫定時任務進行部署? ---使用Artifactory Webhooks和Docker實現持續部署WebHookDocker
- 【持續部署】批量部署工具,總結、對比
- GitLab 持續整合在 Laravel 商用專案中的應用實踐GitlabLaravel
- 如何使用Android原生介面,實現“應用雙開”Android
- 使用 Jenkins 建立微服務應用的持續整合Jenkins微服務
- 使用 Github Actions 持續釋出 Flutter 應用GithubFlutter
- 如何解決Finder持續無響應的問題