1
2

More than 1 year has passed since last update.

GitHub Actions で Flutter プロジェクトを自動ビルド(CD)

Posted at

はじめに

毎回手でビルドするのが面倒だから、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タブをクリックして、下記のように秘密鍵を追加

image.png

上記の秘密鍵を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の値が見えます。

プッシュして確認

image.png
image.png
成功時にはこのようになるはずだ。

終わり

GitHub Actions を使った Android 向けの自動デプロイの方法をまとめた。
参考リポジトリ:https://github.com/zhanghangcode/flutter_water

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2