Google Actions를 이용한 flutter 앱 배포

electron, npm 배포에 이어 flutter 앱도 Github Actions로 배포를 해보기로 했다.

flutter 빌드를 위해서 필요한 것은 의외로 단순하다. java, flutter 가 전부다. ios 빌드를 위해서는 os를 macos로 하는 것이 필요하겠지만 일단은 android로만 빌드하기 때문에 ubuntu로 했다.

- uses: subosito/flutter-action@v1
  with:
    channel: 'stable'

flutter의 준비는 subosito/flutter-action를 사용할 수 있고, channel이나 flutter-version을 옵션으로 변경할 수 있다. 결과물은 electron에서와 마찬가지로 release에 업로드를 했다. 생각 같아서는 google play api를 사용해서 테스트버전으로 업로드까지 하고 싶었는데... 그래봐야 결국 수동으로 설명쓰고 검토버튼 누르고 출시버튼 누르고 해야해서 거기까지는 하지 않았다.

아래는 전체 코드다. github actions 만세!

name: Release

on:
  push:
    tags:
      - v*

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Context
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}
        run: echo "$GITHUB_CONTEXT"
      - uses: actions/checkout@v1
        with:
          fetch-depth: 1
      - uses: actions/setup-java@v1
        with:
          java-version: '12.x'
      - uses: subosito/flutter-action@v1
        with:
          channel: 'stable'
      - name: Decrypt secret
        run: ./.github/scripts/decrypt_secret.sh
        env:
          BUILD_KEY: ${{ secrets.BUILD_KEY }}
          BUILD_IV: ${{ secrets.BUILD_IV }}
      - name: Build App
        run: |
          flutter pub get
          flutter build apk --split-per-abi
      - name: Release
        uses: softprops/action-gh-release@v1
        with:
          files: |
            build/app/outputs/apk/release/*.apk
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
반응형