Skip to content

ci(release): update release process #33

ci(release): update release process

ci(release): update release process #33

# Build and release example app
name: Build and release example app
on:
pull_request_target:
types:
- closed
branches:
- main
jobs:
release-android-example-app:
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'exampleAppRelease:pending')
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
label-cleanup:
needs: release-android-example-app
runs-on: ubuntu-latest
env:
PR_NUMBER: ${{ github.event.number }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- run: gh pr edit $PR_NUMBER --remove-label exampleAppRelease:pending
- run: gh pr edit $PR_NUMBER --add-label exampleAppRelease:released