From a144d762f744cf5a532d5eaa77093c956732799f Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Mon, 20 Jan 2025 23:16:53 +0000 Subject: [PATCH 01/18] New build.yaml action --- .github/workflows/build.yaml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..1ae7749 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,26 @@ +name: Build + +on: [ pull_request, push ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Setup Java 17 + uses: actions/setup-java@v3 + with: + distribution: 'corretto' + java-version: '17' + + - name: Checkout the code + uses: actions/checkout@v2 + + - name: Setup Android SDK + uses: android-actions/setup-android@v3.2.2 + + - name: Change wrapper permissions + run: chmod +x ./gradlew + + - name: Build gradle project + run: ./gradlew build \ No newline at end of file From 4746082c6a7493dd4f8c339218b75d1bec06bec5 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Mon, 20 Jan 2025 23:24:30 +0000 Subject: [PATCH 02/18] New build.yaml action Added template google-services.json to be able to build --- app/google-services.json | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/google-services.json diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..87da32a --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "YourProjectId", + "project_id": "abc", + "storage_bucket": "abc" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "Your:App:Id", + "android_client_info": { + "package_name": "com.scrolless.app" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "APIKeyPlaceholder" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "Your:App:Id", + "android_client_info": { + "package_name": "com.scrolless.app.dev.debug" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "APIKeyPlaceholder" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file From b5c62f5d1c31136c11c23ddcbfd76132c9a20909 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 22:12:28 +0000 Subject: [PATCH 03/18] New build.yaml action Added template google-services.json to be able to build Removed unnecessary classes for now --- .github/gradle-ci.properties | 9 + .github/workflows/build.yaml | 68 ++++++-- .../AndroidApplicationConventionPlugin.kt | 7 - .../kotlin/AndroidLibraryConventionPlugin.kt | 5 - .../scrolless/app/AndroidInstrumentedTests.kt | 35 ---- .../main/kotlin/com/scrolless/app/Badging.kt | 159 ------------------ .../framework/extensions/ActivityExtension.kt | 2 +- 7 files changed, 65 insertions(+), 220 deletions(-) create mode 100644 .github/gradle-ci.properties delete mode 100644 buildLogic/convention/src/main/kotlin/com/scrolless/app/AndroidInstrumentedTests.kt delete mode 100644 buildLogic/convention/src/main/kotlin/com/scrolless/app/Badging.kt diff --git a/.github/gradle-ci.properties b/.github/gradle-ci.properties new file mode 100644 index 0000000..511e4db --- /dev/null +++ b/.github/gradle-ci.properties @@ -0,0 +1,9 @@ +kotlin.incremental=false +warningsAsErrors=false + +org.gradle.daemon=false +org.gradle.parallel=true +org.gradle.workers.max=2 +org.gradle.configuration-cache=true +org.gradle.configuration-cache.parallel=true + diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1ae7749..07646a8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,24 +3,66 @@ name: Build on: [ pull_request, push ] jobs: - build: + test_and_apk: + name: "Local tests and APKs" runs-on: ubuntu-latest steps: - - name: Setup Java 17 - uses: actions/setup-java@v3 + - name: Checkout + uses: actions/checkout@v4 + + - name: Copy CI gradle.properties + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 17 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 with: - distribution: 'corretto' - java-version: '17' + cache-encryption-key: ${{ secrets.GradleEncryptionKey }} - - name: Checkout the code - uses: actions/checkout@v2 + - name: Check build-logic + run: ./gradlew :build-logic:convention:check - - name: Setup Android SDK - uses: android-actions/setup-android@v3.2.2 + - name: Check spotless + run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache - - name: Change wrapper permissions - run: chmod +x ./gradlew + # Run local tests + - name: Run local tests + run: ./gradlew testDemoDebug :lint:test + + - name: Build all build type and flavor permutations + run: ./gradlew :app:assemble + + - name: Upload build outputs (APKs) + uses: actions/upload-artifact@v4 + with: + name: APKs + path: '**/build/outputs/apk/**/*.apk' - - name: Build gradle project - run: ./gradlew build \ No newline at end of file + - name: Upload JVM local results (XML) + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: local-test-results + path: '**/build/test-results/test*UnitTest/**.xml' + + - name: Check lint + run: ./gradlew :app:lintProdRelease :lint:lint + + - name: Upload lint reports (HTML) + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: lint-reports + path: '**/build/reports/lint-results-*.html' + + - name: Upload lint reports (SARIF) + if: ${{ !cancelled() && hashFiles('**/*.sarif') != '' }} + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: './' \ No newline at end of file diff --git a/buildLogic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt b/buildLogic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt index 75c85eb..600827d 100644 --- a/buildLogic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt +++ b/buildLogic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt @@ -1,13 +1,9 @@ import com.android.build.api.dsl.ApplicationExtension -import com.android.build.api.variant.ApplicationAndroidComponentsExtension -import com.android.build.gradle.BaseExtension -import com.scrolless.app.configureBadgingTasks import com.scrolless.app.configureKotlinAndroid import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.getByType class AndroidApplicationConventionPlugin : Plugin { override fun apply(target: Project) { @@ -22,9 +18,6 @@ class AndroidApplicationConventionPlugin : Plugin { @Suppress("UnstableApiUsage") testOptions.animationsDisabled = true } - extensions.configure { - configureBadgingTasks(extensions.getByType(), this) - } } } } diff --git a/buildLogic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/buildLogic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index b9717c2..1a3ab2b 100644 --- a/buildLogic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/buildLogic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -14,11 +14,9 @@ * limitations under the License. */ -import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.gradle.LibraryExtension import com.scrolless.app.configureFlavors import com.scrolless.app.configureKotlinAndroid -import com.scrolless.app.disableUnnecessaryAndroidTests import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -50,9 +48,6 @@ class AndroidLibraryConventionPlugin : Plugin { .joinToString(separator = "_") .lowercase() + "_" } - extensions.configure { - disableUnnecessaryAndroidTests(target) - } dependencies { add("androidTestImplementation", kotlin("test")) add("testImplementation", kotlin("test")) diff --git a/buildLogic/convention/src/main/kotlin/com/scrolless/app/AndroidInstrumentedTests.kt b/buildLogic/convention/src/main/kotlin/com/scrolless/app/AndroidInstrumentedTests.kt deleted file mode 100644 index f734059..0000000 --- a/buildLogic/convention/src/main/kotlin/com/scrolless/app/AndroidInstrumentedTests.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.scrolless.app - -import com.android.build.api.variant.LibraryAndroidComponentsExtension -import org.gradle.api.Project - -/** - * Disable unnecessary Android instrumented tests for the [project] if there is no `androidTest` folder. - * Otherwise, these projects would be compiled, packaged, installed and ran only to end-up with the following message: - * - * > Starting 0 tests on AVD - * - * Note: this could be improved by checking other potential sourceSets based on buildTypes and flavors. - */ -internal fun LibraryAndroidComponentsExtension.disableUnnecessaryAndroidTests( - project: Project, -) = beforeVariants { - it.enableAndroidTest = it.enableAndroidTest - && project.projectDir.resolve("src/androidTest").exists() -} diff --git a/buildLogic/convention/src/main/kotlin/com/scrolless/app/Badging.kt b/buildLogic/convention/src/main/kotlin/com/scrolless/app/Badging.kt deleted file mode 100644 index 637147e..0000000 --- a/buildLogic/convention/src/main/kotlin/com/scrolless/app/Badging.kt +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.scrolless.app - -import com.android.SdkConstants -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.variant.ApplicationAndroidComponentsExtension -import com.android.build.gradle.BaseExtension -import com.google.common.truth.Truth.assertWithMessage -import org.gradle.api.DefaultTask -import org.gradle.api.Project -import org.gradle.api.file.DirectoryProperty -import org.gradle.api.file.RegularFileProperty -import org.gradle.api.provider.Property -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.Copy -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.InputFile -import org.gradle.api.tasks.OutputDirectory -import org.gradle.api.tasks.OutputFile -import org.gradle.api.tasks.PathSensitive -import org.gradle.api.tasks.PathSensitivity -import org.gradle.api.tasks.TaskAction -import org.gradle.kotlin.dsl.assign -import org.gradle.kotlin.dsl.register -import org.gradle.language.base.plugins.LifecycleBasePlugin -import org.gradle.process.ExecOperations -import java.io.File -import java.util.Locale -import javax.inject.Inject - -@CacheableTask -abstract class GenerateBadgingTask : DefaultTask() { - - @get:OutputFile - abstract val badging: RegularFileProperty - - @get:PathSensitive(PathSensitivity.NONE) - @get:InputFile - abstract val apk: RegularFileProperty - - @get:PathSensitive(PathSensitivity.NONE) - @get:InputFile - abstract val aapt2Executable: RegularFileProperty - - @get:Inject - abstract val execOperations: ExecOperations - - @TaskAction - fun taskAction() { - execOperations.exec { - commandLine( - aapt2Executable.get().asFile.absolutePath, - "dump", - "badging", - apk.get().asFile.absolutePath, - ) - standardOutput = badging.asFile.get().outputStream() - } - } -} - -@CacheableTask -abstract class CheckBadgingTask : DefaultTask() { - - // In order for the task to be up-to-date when the inputs have not changed, - // the task must declare an output, even if it's not used. Tasks with no - // output are always run regardless of whether the inputs changed - @get:OutputDirectory - abstract val output: DirectoryProperty - - @get:PathSensitive(PathSensitivity.NONE) - @get:InputFile - abstract val goldenBadging: RegularFileProperty - - @get:PathSensitive(PathSensitivity.NONE) - @get:InputFile - abstract val generatedBadging: RegularFileProperty - - @get:Input - abstract val updateBadgingTaskName: Property - - override fun getGroup(): String = LifecycleBasePlugin.VERIFICATION_GROUP - - @TaskAction - fun taskAction() { - assertWithMessage( - "Generated badging is different from golden badging! " + - "If this change is intended, run ./gradlew ${updateBadgingTaskName.get()}", - ) - .that(generatedBadging.get().asFile.readText()) - .isEqualTo(goldenBadging.get().asFile.readText()) - } -} - -private fun String.capitalized() = replaceFirstChar { - if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() -} - -fun Project.configureBadgingTasks( - baseExtension: BaseExtension, - componentsExtension: ApplicationAndroidComponentsExtension, -) { - // Registers a callback to be called, when a new variant is configured - componentsExtension.onVariants { variant -> - // Registers a new task to verify the app bundle. - val capitalizedVariantName = variant.name.capitalized() - val generateBadgingTaskName = "generate${capitalizedVariantName}Badging" - val generateBadging = - tasks.register(generateBadgingTaskName) { - apk = variant.artifacts.get(SingleArtifact.APK_FROM_BUNDLE) - - aapt2Executable = File( - baseExtension.sdkDirectory, - "${SdkConstants.FD_BUILD_TOOLS}/" + - "${baseExtension.buildToolsVersion}/" + - SdkConstants.FN_AAPT2, - ) - - - badging = project.layout.buildDirectory.file( - "outputs/apk_from_bundle/${variant.name}/${variant.name}-badging.txt", - ) - - } - - val updateBadgingTaskName = "update${capitalizedVariantName}Badging" - tasks.register(updateBadgingTaskName) { - from(generateBadging.get().badging) - into(project.layout.projectDirectory) - } - - val checkBadgingTaskName = "check${capitalizedVariantName}Badging" - tasks.register(checkBadgingTaskName) { - goldenBadging = project.layout.projectDirectory.file("${variant.name}-badging.txt") - - generatedBadging = generateBadging.get().badging - - this.updateBadgingTaskName = updateBadgingTaskName - - output = project.layout.buildDirectory.dir("intermediates/$checkBadgingTaskName") - - } - } -} diff --git a/libraries/framework/src/main/java/com/scrolless/framework/extensions/ActivityExtension.kt b/libraries/framework/src/main/java/com/scrolless/framework/extensions/ActivityExtension.kt index 4ea8fae..50f006c 100644 --- a/libraries/framework/src/main/java/com/scrolless/framework/extensions/ActivityExtension.kt +++ b/libraries/framework/src/main/java/com/scrolless/framework/extensions/ActivityExtension.kt @@ -21,6 +21,6 @@ fun getSerializable( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { activity.intent.getSerializableExtra(name, clazz)!! } else { - @Suppress("DEPRECATION") + @Suppress("DEPRECATION", "UNCHECKED_CAST") activity.intent.getSerializableExtra(name) as T } From 80ab639c896fa613c7670e760da8e59f71452b13 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 22:59:07 +0000 Subject: [PATCH 04/18] New build.yaml action Added template google-services.json to be able to build Removed unnecessary classes for now --- .github/workflows/build.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 07646a8..3eea516 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,10 @@ name: Build -on: [ pull_request, push ] +on: + push: + branches: + - main + pull_request: jobs: test_and_apk: @@ -11,8 +15,8 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + #- name: Copy CI gradle.properties + #run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 From e580eb0fc32b371f34435139e90c13e42e484d5a Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:09:23 +0000 Subject: [PATCH 05/18] New build.yaml action Added template google-services.json to be able to build Removed unnecessary classes for now --- .github/workflows/build.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3eea516..bf3c085 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,12 +11,19 @@ jobs: name: "Local tests and APKs" runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + security-events: write + + timeout-minutes: 60 + steps: - name: Checkout uses: actions/checkout@v4 - #- name: Copy CI gradle.properties - #run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + - name: Copy CI gradle.properties + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 From d6c561fd028d635a5552796a51dc3f9ad7451060 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:11:26 +0000 Subject: [PATCH 06/18] New build.yaml action Added template google-services.json to be able to build Removed unnecessary classes for now --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bf3c085..66980fd 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,8 +22,8 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + #- name: Copy CI gradle.properties +# run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 From eec303501090d1a1b473fe13939a812cd3785acd Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:22:03 +0000 Subject: [PATCH 07/18] Fixed buildLogic wrong project name --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 66980fd..8c0e442 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -37,7 +37,7 @@ jobs: cache-encryption-key: ${{ secrets.GradleEncryptionKey }} - name: Check build-logic - run: ./gradlew :build-logic:convention:check + run: ./gradlew :buildLogic:convention:check - name: Check spotless run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache From 4530f032816477b51e75dccf365c243578389929 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:24:10 +0000 Subject: [PATCH 08/18] Concurrency and gradle properties --- .github/workflows/build.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8c0e442..8ef8ac6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,24 +6,23 @@ on: - main pull_request: +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true + jobs: test_and_apk: name: "Local tests and APKs" runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - security-events: write - timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v4 - #- name: Copy CI gradle.properties -# run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + - name: Copy CI gradle.properties + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 From fdade7ba17a342d0fdfc883231c8168de19e6ab0 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:25:55 +0000 Subject: [PATCH 09/18] Concurrency and gradle properties --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8ef8ac6..e3a0076 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: Copy CI gradle.properties - run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + run: mkdir -p ~/.gradle ; cp .github/gradle-ci.properties ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 From 34db54408cdc57c55e7efce9c03ec9f16d716e96 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Wed, 22 Jan 2025 23:28:07 +0000 Subject: [PATCH 10/18] Updated gradlew permissions --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From 9d943c60529b75a41fa4a219d164a346f7770b52 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Thu, 23 Jan 2025 19:56:40 +0000 Subject: [PATCH 11/18] Updated gradlew permissions --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e3a0076..9ab963f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: # Run local tests - name: Run local tests - run: ./gradlew testDemoDebug :lint:test + run: ./gradlew testDevDebug :lint:test - name: Build all build type and flavor permutations run: ./gradlew :app:assemble From d082ddd01fee10b0b409bd2a4ff04d28788a1b63 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Thu, 23 Jan 2025 21:21:01 +0000 Subject: [PATCH 12/18] Updated gradlew permissions --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9ab963f..267946e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: # Run local tests - name: Run local tests - run: ./gradlew testDevDebug :lint:test + run: ./gradlew testDevDebug - name: Build all build type and flavor permutations run: ./gradlew :app:assemble From e9864fb78d7a0f6794f50d2bbf2586ea6c9d821a Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Thu, 23 Jan 2025 23:18:51 +0000 Subject: [PATCH 13/18] Changed google-services but this should be temporary --- app/google-services.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/google-services.json b/app/google-services.json index 87da32a..0734b64 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -28,7 +28,7 @@ "client_info": { "mobilesdk_app_id": "Your:App:Id", "android_client_info": { - "package_name": "com.scrolless.app.dev.debug" + "package_name": "com.scrolless.app.debug" } }, "oauth_client": [], From ce401820b5eddcf851365aa89a64a72e77839881 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Thu, 23 Jan 2025 23:40:22 +0000 Subject: [PATCH 14/18] Changed google-services --- app/google-services.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/google-services.json b/app/google-services.json index 0734b64..65520da 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -24,6 +24,25 @@ } } }, + { + "client_info": { + "mobilesdk_app_id": "Your:App:Id", + "android_client_info": { + "package_name": "com.scrolless.app.dev.debug" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "APIKeyPlaceholder" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, { "client_info": { "mobilesdk_app_id": "Your:App:Id", From 95c84f72a6c9e8b16a149da4d08f3238161383f8 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Thu, 23 Jan 2025 23:55:25 +0000 Subject: [PATCH 15/18] Changed google-services --- app/google-services.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/google-services.json b/app/google-services.json index 65520da..063796f 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -61,6 +61,25 @@ "other_platform_oauth_client": [] } } + }, + { + "client_info": { + "mobilesdk_app_id": "Your:App:Id", + "android_client_info": { + "package_name": "com.scrolless.app.dev" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "APIKeyPlaceholder" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } } ], "configuration_version": "1" From 98110f06310fe96e449652970dfbf460141416f3 Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Fri, 24 Jan 2025 22:50:02 +0000 Subject: [PATCH 16/18] Fixed firebase which was trying to upload mapping --- .../main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt | 2 +- .../framework/core/base/binding/ViewBindingExtension.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/buildLogic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt b/buildLogic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt index 20520b3..b6aac55 100644 --- a/buildLogic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt +++ b/buildLogic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt @@ -45,7 +45,7 @@ class AndroidApplicationFirebaseConventionPlugin : Plugin { // enabled if a Firebase backend is available and configured in // google-services.json. configure { - mappingFileUploadEnabled = true + mappingFileUploadEnabled = false } } } diff --git a/libraries/framework/src/main/java/com/scrolless/framework/core/base/binding/ViewBindingExtension.kt b/libraries/framework/src/main/java/com/scrolless/framework/core/base/binding/ViewBindingExtension.kt index bcedd55..d87e3d1 100644 --- a/libraries/framework/src/main/java/com/scrolless/framework/core/base/binding/ViewBindingExtension.kt +++ b/libraries/framework/src/main/java/com/scrolless/framework/core/base/binding/ViewBindingExtension.kt @@ -57,6 +57,7 @@ internal fun Any.findClass(): Class<*> { false } } as? Class<*> + @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS") javaClass = javaClass.superclass } return result From ed2ec237b61de263d563357bbb77148c6453d6aa Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Fri, 24 Jan 2025 23:08:34 +0000 Subject: [PATCH 17/18] Removed libs for now --- app/build.gradle.kts | 3 --- build.gradle.kts | 7 ------- gradle/libs.versions.toml | 7 ------- 3 files changed, 17 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7b5a274..ab4396c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,7 +11,6 @@ plugins { alias(libs.plugins.scrolless.android.application.flavors) alias(libs.plugins.scrolless.android.application.firebase) alias(libs.plugins.scrolless.hilt) - id("com.google.android.gms.oss-licenses-plugin") alias(libs.plugins.kotlin.android) } @@ -137,7 +136,5 @@ dependencies { implementation(libs.firebase.crashlytics) - implementation(libs.google.oss.licenses) - implementation(libs.facebook.shimmer) } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 34743f2..d1993c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,12 +4,6 @@ buildscript { mavenCentral() gradlePluginPortal() } - - dependencies { - classpath(libs.google.oss.licenses.plugin) { - exclude(group = "com.google.protobuf") - } - } } plugins { @@ -22,5 +16,4 @@ plugins { alias(libs.plugins.firebase.perf) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.hilt) apply false - alias(libs.plugins.module.graph) apply true // Plugin applied to allow module graph generation } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d9952ae..e494896 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,8 +10,6 @@ androidTools = "31.8.0" kotlin = "2.1.0" ksp = "2.1.0-1.0.29" -googleOss = "17.1.0" -googleOssPlugin = "0.10.6" shimmer = "0.5.0" androidDesugarJdkLibs = "2.1.4" @@ -73,7 +71,6 @@ okhttp = "4.12.0" googleServices = "4.4.2" firebaseCrashlyticsPlugin = "3.0.2" firebasePerfPlugin = "1.4.2" -moduleGraph = "2.7.1" firebaseCrashlyticsKtx = "19.4.0" viewbinding = "8.8.0" preferenceKtx = "1.2.1" @@ -160,9 +157,6 @@ calendar-core = { group = "com.github.thellmund.Android-Week-View", name = "core calendar-jsr310 = { group = "com.github.thellmund.Android-Week-View", name = "jsr310", version.ref = "calendar" } calendar-emoji = { group = "com.github.thellmund.Android-Week-View", name = "emoji", version.ref = "calendar" } -google-oss-licenses = { group = "com.google.android.gms", name = "play-services-oss-licenses", version.ref = "googleOss" } -google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" } - facebook-shimmer = { group = "com.facebook.shimmer", name = "shimmer", version.ref = "shimmer" } # Testing Libraries @@ -203,7 +197,6 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } google-services = { id = "com.google.gms.google-services", version.ref = "googleServices" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } -module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" } # Plugins defined by this project scrolless-android-application = { id = "scrolless.android.application" } From 3e2d29cde5808f4f95f282fa523c33e2be50d74d Mon Sep 17 00:00:00 2001 From: Duarte Barbosa Date: Sun, 26 Jan 2025 13:42:27 +0000 Subject: [PATCH 18/18] Update build.yaml --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 267946e..75dd2e4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -62,7 +62,7 @@ jobs: path: '**/build/test-results/test*UnitTest/**.xml' - name: Check lint - run: ./gradlew :app:lintProdRelease :lint:lint + run: ./gradlew :app:lintProdRelease - name: Upload lint reports (HTML) if: ${{ !cancelled() }} @@ -75,4 +75,4 @@ jobs: if: ${{ !cancelled() && hashFiles('**/*.sarif') != '' }} uses: github/codeql-action/upload-sarif@v3 with: - sarif_file: './' \ No newline at end of file + sarif_file: './'