diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml new file mode 100644 index 00000000..c74970eb --- /dev/null +++ b/.github/workflows/Release.yml @@ -0,0 +1,63 @@ +name: Release - APKs + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: macos-latest + timeout-minutes: 120 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Copy CI gradle.properties + run: mkdir -p ~/.gradle ; cp ci-cd/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + + - name: Install GMD image for baseline profile generation + run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager "system-images;android-33;aosp_atd;x86_64" + + - name: Accept Android licenses + run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true + + - name: Build release variant including baseline profile generation + run: | + ./gradlew :app:assembleRelease \ + -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile \ + -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" \ + -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true \ + -Pandroid.experimental.androidTest.numManagedDeviceShards=1 \ + -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1 + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + draft: true + prerelease: false + + - name: Upload app + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: app/build/outputs/apk/release/app-release.apk + asset_name: app-release.apk + asset_content_type: application/vnd.android.package-archive \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 893fc7c5..4513e041 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2023 IheNkiri Project + * Copyright (c) 2024 IheNkiri Project * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -66,8 +66,8 @@ android { signingConfig = signingConfigs.getByName("debug") - // Ensure Baseline Profile is fresh for release builds. (Note, chenge this) - baselineProfile.automaticGenerationDuringBuild = false + // Ensure Baseline Profile is fresh for release builds. + baselineProfile.automaticGenerationDuringBuild = true } create("benchmark") {