github action實現(xiàn)Android持續(xù)集成
持續(xù)集成(Continuous Integration)在很多單位都有現(xiàn)成的系統(tǒng),但是作為一名工程師,我們還是要了解其原理,可以自己嘗試做一下。經過本人的嘗試,發(fā)現(xiàn)功能并不復雜。這里把持續(xù)集成實踐經驗總結與大家分享。
持續(xù)集成用的比較多的是jenkins。后來在網上搜索發(fā)現(xiàn)github也有這個功能,就想著用github來實現(xiàn)。github功能的確十分強大,我們平時用到的github功能主要是托管代碼等很小一部分功能。本文持續(xù)集成android項目實現(xiàn)的功能主要有以下兩個:
1.在有新提交時自動編譯打包。
2.將打包生成的apk上傳至github的文件存儲artifact,這樣我們就能隨時想用的時候就去下載對應的apk。
Step 1:新建workflow
點擊自己的github項目,平時我們選擇的標簽頁是Code,這里我們選擇action。


點擊New workflow的按鈕。
Step2:選擇Anroid CI.
在workflow頁面選擇Android CI。這時會提供給我們一個通用的模板。我們選中這個Android CI,點擊Set up this workflow.

選中后在代碼在項目 "根目錄/.github/workflows" 會生成如下yml文件。

當然,如果不通過github的頁面去創(chuàng)建workflow,直接在相應目錄創(chuàng)建yml文件,然后推送到服務端,也可以識別。注意,通過github ui默認創(chuàng)建的workflow在main分支,我們可以在代碼目錄的自己想要CI的分支加上對應的yml文件。
yml文件目前的內容如下:
從上面的代碼中我們可以看出,代碼的最后一行執(zhí)行的任務是build。這里我將其改為./gradlew assembleRelease。這樣就可以實現(xiàn)打包apk。
Step3:上傳apk到artifact.
為了將apk上傳,我們需要使用artifact相關的命令。當執(zhí)行任務的時候,github有很多種命令可以選擇,可以在編輯yml文件的右邊的Marketplace尋找自己需要的插件,并查看對應的語法。

這里我們從上圖的"Upload a Build artifact"中,找到相應的語法將我的apk上傳。最終我的完整的yml文件如下:
如上圖的yml文件,編輯完成后保存。這樣,每次我們提交新代碼的時候,github就會自動編譯并將生成的apk上傳。當出現(xiàn)編譯錯誤時,github會自動將錯誤推送到github綁定的郵箱。