Build 56 #27
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.17 | |
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 |