Skip to content

android-release-test #4

android-release-test

android-release-test #4

on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
name: android-release-test
jobs:
release-android-example-app:
runs-on: ubuntu-latest
defaults:
run:
working-directory: example
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
- uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: "gradle"
- name: Make secret env file accessible for envied generation.
uses: timheuer/[email protected]
with:
fileName: ".env"
fileDir: "./example"
encodedString: ${{ secrets.EXAMPLE_APP_ENV_FILE_PROD_BASE64 }}
- name: Write Keystore from base64 encoded secret.
uses: timheuer/[email protected]
with:
fileName: "sbb_maps_flutter_example_keystore.jks"
fileDir: "./example/android/app/keys"
encodedString: ${{ secrets.ANDROID_KEYSTORE_64 }}
- run: flutter pub get
- run: dart run build_runner build --delete-conflicting-outputs
- run: flutter build appbundle --no-pub
env:
SIGNING_KEYSTORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
- name: Create Signing Report
run: ./gradlew signingReport
working-directory: ./example/android
- name: Upload appbundle as artifact
uses: actions/upload-artifact@v4
with:
name: app-release.aab
path: example/build/app/outputs/bundle/release/
retention-days: 3
- name: Write Google SA json from base64 encoded secret
uses: timheuer/[email protected]
with:
fileName: "google_playstore_service_account.json"
fileDir: "./example/android/app/keys"
encodedString: ${{ secrets.GOOGLE_PLAYSTORE_SERVICE_ACCOUNT_BASE64 }}
- name: Release using Google Play Publisher
run: ./gradlew publishBundle --artifact-dir ../build/app/outputs/bundle/release/
working-directory: ./example/android