Skip to content

Build and Upload to Google Play Store #5

Build and Upload to Google Play Store

Build and Upload to Google Play Store #5

name: Build and Upload to Google Play Store
on:
workflow_dispatch
env:
FLUTTER_VERSION: '${{ vars.FLUTTER_VERSION }}'
jobs:
android-build:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: 'stable'
architecture: x64
- run: cd fivekmrun_app_flutter && flutter pub get
- shell: bash
env:
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_SECRET: ${{ secrets.STRAVA_SECRET }}
GOOGLE_MAPS_KEY: ${{ secrets.GOOGLE_MAPS_KEY }}
run: |
mkdir ./fivekmrun_app_flutter/lib/private && cat << EOF > ./fivekmrun_app_flutter/lib/private/secrets.dart
const stravaSecret = '$STRAVA_SECRET';
const stravaClientId = '$STRAVA_CLIENT_ID';
const googleMapsKey = '$GOOGLE_MAPS_KEY';
EOF
- name: Replace Firebase config
run: rm ./fivekmrun_app_flutter/android/app/google-services.json && echo "${{ secrets.FIREBASE_CONFIG }}" | base64 --decode > ./fivekmrun_app_flutter/android/app/google-services.json
- name: Build appbundle
run: cd fivekmrun_app_flutter && flutter build appbundle --release --no-shrink
- name: Sign App Bundle
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > /tmp/keystore.jks
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore /tmp/keystore.jks -storepass '${{ secrets.KEYSTORE_PASSWORD }}' -keypass '${{ secrets.KEYSTORE_PASSWORD }}' ./fivekmrun_app_flutter/build/app/outputs/bundle/release/app-release.aab ${{ secrets.KEYSTORE_ALIAS }}
- name: Publish Android Artefacts to GitHub
uses: actions/upload-artifact@v3
with:
name: release-android
path: ./fivekmrun_app_flutter/build/app/outputs/bundle/release/
- name: Upload to Google Play
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: bg.fivekmpark.fivekmrun
releaseFiles: ./fivekmrun_app_flutter/build/app/outputs/bundle/release/app-release.aab
track: production
status: draft