#はじめに
毎回手でビルドするのが面倒だから、GitHub ActionsがCD機能付いてるので、ソースをmasterにプッシュのダミーミングでプロジェクトが自動ビルドができます。
yaml内容説明
name: Android CD
#発火条件
on:
#ソースをmasterブランチにプッシュする時
push:
branches: [ master ]
#他のブランチをmasterブランチにマッジする時
pull_request:
branches: [ master ]
jobs:
build:
#ビルド環境
runs-on: ubuntu-latest
steps:
#リポジトリからソースをダンロード
- uses: actions/checkout@v2
#JAVA環境構築
- name: install java 8.x
uses: actions/setup-java@v1
with:
java-version: '8.x'
- name: setup cache
uses: actions/cache@v1
with:
path: /Users/runner/hostedtoolcache/flutter
key: ${{ runner.OS }}-flutter-install-cache
#Flutter環境構築
- name: install flutter
uses: subosito/flutter-action@v1
with:
#Flutterのバージョン
flutter-version: '2.5.3'
channel: 'stable'
- name: flutter dependencies install
#ライブラリーの導入
run: flutter pub get
- name: build apk
run: |
echo '${{ secrets.KEYSTORE_BASE64 }}' | base64 -d > android/release.keystore
export KEYSTORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}'
export KEY_ALIAS='${{ secrets.KEY_ALIAS }}'
export KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}'
flutter build apk --release
- name: Upload artifact
uses: actions/upload-artifact@v1.0.0
with:
name: android
path: build/app/outputs/flutter-apk/app-release.apk
###Gradleに情報を改修
用意した鍵を埋め込んだり、リリース用の設定をするために Gradle ファイルを修正していく。
下記のコードをandroid {}に追加
signingConfigs {
release {
keyAlias System.getenv('KEY_ALIAS')
keyPassword System.getenv('KEY_PASSWORD')
storeFile rootProject.file('release.keystore')
storePassword System.getenv('KEYSTORE_PASSWORD')
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
GitHubにSettingsタブをクリックして、下記のように秘密鍵を追加
上記の秘密鍵をyamlファイルに関連
echo '${{ secrets.KEYSTORE_BASE64 }}' | base64 -d > android/release.keystore
export KEYSTORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}'
export KEY_ALIAS='${{ secrets.KEY_ALIAS }}'
export KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}'
ターミナルでこのコマンド cat release.keystore | base64 を実行すればKEYSTORE_BASE64の値が見えます。
###プッシュして確認
成功時にはこのようになるはずだ。
###終わり
GitHub Actions を使った Android 向けの自動デプロイの方法をまとめた。
参考リポジトリ:https://github.com/zhanghangcode/flutter_water