Skip to content

v0.16.1

v0.16.1 #84

name: Build for Play Store
on:
# Enable manual run
workflow_dispatch:
push:
tags:
- '**'
env:
project-id: com.adilhanney.saber
jobs:
build-aab:
name: Build AAB for the Play Store
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Remove unneeded files
run: |
rm -rf appimage
rm -rf assets_raw
rm -rf flatpak
rm -rf installers
rm -rf integration_test
rm -rf ios
rm -rf linux
rm -rf macos
rm -rf metadata
rm -rf snap
rm -rf submodules
rm -rf test
rm -rf windows
- name: Setup cache
uses: actions/cache@v3
with:
path: |
build
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
restore-keys: |
${{ runner.OS }}-saber-
- name: Remove signingConfig
run: ./patches/remove_signing_android.sh
- name: Remove REQUEST_INSTALL_PACKAGES permission
run: ./patches/remove_request_install_packages_permission.sh
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
cache-key: 'flutter-:os:-:channel:-:version:-:arch:'
- run: flutter pub get
- name: Build aab
run: |
flutter build appbundle \
--dart-define=FLAVOR="Google Play" \
--dart-define=APP_STORE="Google Play" \
--dart-define=UPDATE_CHECK="false" \
--dart-define=DIRTY="false"
- name: Move unsigned apk
run: |
mkdir -p output
mv build/app/outputs/bundle/release/app-release.aab output/Saber.aab
- name: Sign aab
uses: ilharp/sign-android-release@v1
id: sign_app
with:
releaseDir: output
signingKey: ${{ secrets.SIGNING_KEY }}
keyAlias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Rename signed apk
run: mv ${{ steps.sign_app.outputs.signedFile }} output/Saber.aab
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: Saber-Android-PlayStore
path: output/Saber.aab
upload-to-play-store:
name: Upload to Play Store
runs-on: ubuntu-latest
needs: build-aab
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: Saber-Android-PlayStore
path: output
- name: Prepare whatsnew directory from metadata/*/changelogs
working-directory: ${{ github.workspace }}
run: |
# display changelogs for debugging
find metadata -name '*.txt'
mkdir -p whatsnew
# get current version code from lib/data/version.dart
VERSION_CODE=$(grep -oP '(?<=buildNumber = )\d+' lib/data/version.dart)
# copy changelogs of each language to whatsnew
for dir in metadata/*/changelogs; do
# get language code from directory name
# e.g. metadata/en-US/changelogs -> en-US
lang=${dir#metadata/}
lang=${lang%/changelogs}
# copy changelog file to whatsnew
cp "$dir/$VERSION_CODE.txt" "whatsnew/whatsnew-${lang}"
done
- name: Upload to Play Store
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.PLAY_STORE_JSON }}
packageName: com.adilhanney.saber
releaseFiles: output/Saber.aab
track: production
status: completed
whatsNewDirectory: whatsnew