Skip to content

Build 55

Build 55 #26

name: Flutter release Android
on:
release:
types: [published]
jobs:
setupAndTestAndroid:
name: Build and release to Testfairy and maybe Google play beta channel
if: ${{ !contains (github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_android' ) || endsWith( github.event.release.tag_name, '_android_betaonly' ) }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
check-latest: false
- name: Load Flutter config
uses: kuhnroyal/flutter-fvm-config-action@v2
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Flutter version
run: flutter --version
- name: Cache pub dependencies
uses: actions/cache@v4
with:
path: ${{ env.PUB_CACHE }}
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
restore-keys: ${{ runner.os }}-pub-
- name: Download pub dependencies
run: flutter pub get
# - name: Run build_runner
# run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Run analyzer
run: flutter analyze
- name: Run tests
run: flutter test
- name: Download Android keystore play
id: android_keystore_play
uses: timheuer/[email protected]
with:
fileDir: /home/runner/
fileName: keystore-kv-play.pfx
encodedString: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
- name: Download Android keystore beta
id: android_keystore_beta
uses: timheuer/[email protected]
with:
fileDir: /home/runner/
fileName: keystore-kv-beta.pfx
encodedString: ${{ secrets.ANDROID_KEYSTORE_BETA_BASE64 }}
- name: Build Android App APK for beta cloud service
env:
KEEVAULT_ANDROID_BETA_KEYSTORE_PASSWORD: ${{ secrets.KEEVAULT_ANDROID_BETA_KEYSTORE_PASSWORD }}
run: flutter build apk --dart-define KEEVAULT_STAGE=beta --dart-define KEEVAULT_CHANNEL=sideload
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
working-directory: ./android
ruby-version: 3.3
bundler: 2.5.6
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Release beta stage app to beta delivery platform
env:
TESTFAIRY_API_KEY: '${{ secrets.TESTFAIRY_API_KEY }}'
run: |
cd android
bundle exec fastlane beta_stage
- name: Build Android App Bundle
if: ${{ !endsWith( github.event.release.tag_name, '_android_betaonly' ) }}
env:
KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD: ${{ secrets.KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD }}
run: flutter build appbundle --dart-define KEEVAULT_STAGE=prod --dart-define KEEVAULT_CHANNEL=play --dart-define IAP_GOOGLE_PLAY=yes
- name: Release to Google Play (beta)
if: ${{ !endsWith( github.event.release.tag_name, '_android_betaonly' ) }}
env:
KEEVAULT_ANDROID_PLAY_API_KEY_JSON: ${{ secrets.KEEVAULT_ANDROID_PLAY_API_KEY_JSON }}
run: |
cd android
bundle exec fastlane beta