ci(release): update release process #33
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
# 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 |