From de045c286872c73d3395a9dcdfd921f6855cfb3b Mon Sep 17 00:00:00 2001 From: Airyz <36567925+Airyzz@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:00:16 +1030 Subject: [PATCH] Prepare actions for releasing with google services --- .github/workflows/release.yml | 51 +++++++++++++++++++++++++++++++ commet/scripts/build_release.dart | 11 +++++++ 2 files changed, 62 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ffffe8cc..3c38a618 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -119,6 +119,57 @@ jobs: asset_name: commet-android.apk asset_content_type: application/vnd.android.package-archive + release-android-google-services: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: 'true' + + - name: Setup Flutter + uses: subosito/flutter-action@v2.8.0 + with: + flutter-version: '3.13.5' + channel: 'stable' + + - name: Setup Java + uses: actions/setup-java@v1 + with: + java-version: 17 + + - name: Setup Tools + run: | + sudo apt-get update -y + sudo apt-get install -y ninja-build libgtk-3-dev libolm3 libmpv-dev mpv ffmpeg + + - name: Code Generation + run: | + cd $PROJECT_PATH + git apply scripts/apply_google_services.patch + dart run scripts/codegen.dart + + - name: Setup Signatures + run: | + cd $PROJECT_PATH + dart run scripts/setup_android_release.dart --key_password ${{ secrets.ANDROID_KEY_PASSWORD }} --key_b64 ${{ secrets.ANDROID_KEY_STORE_B64 }} + + - name: Build APK + run: | + cd $PROJECT_PATH + dart run scripts/build_release.dart --platform android --version_tag ${{ github.event.release.tag_name || 'v0.0.0' }} --git_hash ${{ github.sha }} --enable_google_services true --build_detail google_services + + - name: Upload to release + if: github.event_name == 'release' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: commet/build/app/outputs/flutter-apk/app-release.apk + asset_name: commet-android-google-services.apk + asset_content_type: application/vnd.android.package-archive + release-linux-debian: runs-on: ubuntu-latest steps: diff --git a/commet/scripts/build_release.dart b/commet/scripts/build_release.dart index 0e28be7a..e504019d 100644 --- a/commet/scripts/build_release.dart +++ b/commet/scripts/build_release.dart @@ -26,6 +26,10 @@ String getHash(List args) { return getArg(args, "--git_hash") ?? "unknown"; } +String getEnableGoogleServices(List args) { + return getArg(args, "--enable_google_services") ?? "false"; +} + String getBuildVersion(String versionTag) { var regex = RegExp(r"\d+(\.\d+)+"); var match = regex.firstMatch(versionTag); @@ -44,6 +48,7 @@ main(List args) async { String version = getVersionTag(args); String platform = getPlatform(args); String hash = getHash(args); + String enableGoogleServices = getEnableGoogleServices(args); String buildVersion = getBuildVersion(version); String flutterPlatform = getFlutterPlatformName(platform); String? buildDetail = getArg(args, "--build_detail"); @@ -53,6 +58,10 @@ main(List args) async { print("Platform:\t'$platform' / '$flutterPlatform' "); print("Hash:\t\t'$hash'"); + if (buildDetail != null) { + print("Detail:\t\t'$buildDetail'"); + } + var process = Process.runSync( "flutter", [ @@ -68,6 +77,8 @@ main(List args) async { "GIT_HASH=$hash", "--dart-define", "VERSION_TAG=$version", + "--dart-define", + "ENABLE_GOOGLE_SERVICES=$enableGoogleServices", if (buildDetail != null) "--dart-define", if (buildDetail != null) "BUILD_DETAIL=$buildDetail", ],