#Github Action#Github#Flutter#APK#AAB#Android

使用原因


因為個人 Mac 是 M1 記憶體也只有 8G,空間又不足,每次 Build 都會跑到電腦很 Lag,所以轉用 Github Action 來 Build,避免電腦一堆垃圾與佔用記憶體。

Guthub 免費提供每月 2000 分鐘的額度,可以從 Actions Usage Metrics 觀看使用量。

Plan Artifact storage Minutes (per month) Cache storage
GitHub Free 500 MB 2,000 10 GB
GitHub Pro 1 GB 3,000 10 GB
GitHub Free for organizations 500 MB 2,000 10 GB
GitHub Team 2 GB 3,000 10 GB
GitHub Enterprise Cloud 50 GB 50,000 10 GB

Workflow


路徑

.github/workflows/xxx.yml ,一個 xxx.yml 檔,就是一個工作流程,一個專案可以一次設定多個 workflow。


GitHub Personal Access Token 設定

要使用 Action 上傳到 Github Release 就必須先設定一組 Token,產生方式為 右上角點你的頭像 > Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token (classic),勾選 repowrite:packages 產生。


Secrets 設定

Secrets 是用來將 .jks、Token、等機敏資料加密存在 Github,使用到時再讀出來使用,避免把機敏資料上到 Git Commit。
一個 Secret 可從 GitHub Repository > Settings > Secrets and variables > Actions > New repository secret 新增即可在 .yml 內使用 ${{ secrets.KEY }} 替代。

Secret 名稱 用途說明
ID_RSA SFTP SSH Key
KEYSTORE_BASE64 Android keystore 的 Base64
KEY_ALIAS Keystore 的 Alias
KEY_PASSWORD Key 的密碼
STORE_PASSWORD Keystore 的密碼
PERSONAL_ACCESS_TOKEN GitHub Personal Access Token


#Mac#Linux#Git#Shell Script

公司有許多專案,git 倉儲 (repository) 有分正式與測試機,所以每次 clone 一個專案後都需要 git remote 去新增遠端倉儲位置,避免久久一個新專案 clone 下來後忘記做這動作,寫了一隻 shell script。

Shell Script 內容


建立一個檔案 git-clone.sh

vim git-clone.sh
#!/bin/sh
git clone git@test-domain.tw:/home/web/repos/$1.git
cd $1
git remote set-url --add --push origin git@test-domain.tw:/home/web/repos/$1.git
git remote set-url --add --push origin git@prod-domain.tw:/home/web/repos/$1.git

加上執行權限

chmod +x git-clone.sh