From 231e77cd6b132cada2e36c0398de3eec7d1bc683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Kwiecin=CC=81ski?= Date: Fri, 10 Nov 2023 23:45:37 +0100 Subject: [PATCH] Add more checks --- .github/workflows/default.yml | 55 +++++++++++++++++++ .../api/licensee-for-android.api | 15 ++--- sample/settings.gradle | 9 +++ 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 79b646f..c24b2af 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -54,3 +54,58 @@ jobs: with: name: test-results-${{ matrix.os }} path: "${{ github.workspace }}/**/build/reports/tests" + + provide-agp-version-matrix: + runs-on: ubuntu-latest + outputs: + agp-versions: ${{ steps.build-agp-matrix.outputs.agp-versions }} + steps: + - id: agp-version-finder + uses: usefulness/agp-version-finder-action@v1 + + - id: build-agp-matrix + run: | + echo 'agp-versions=["${{ steps.agp-version-finder.outputs.latest-stable }}", "${{ steps.agp-version-finder.outputs.latest-alpha }}"]' >> $GITHUB_OUTPUT + + integration-tests-android: + runs-on: ubuntu-latest + needs: + - provide-agp-version-matrix + strategy: + fail-fast: false + matrix: + gradle: [ current, release-candidate ] + java: [ 21 ] + agp: ${{ fromJSON(needs.provide-agp-version-matrix.outputs.agp-versions) }} + + name: '[android] Gradle: ${{ matrix.gradle }}, Java: ${{ matrix.java }}, AGP: ${{ matrix.agp }}' + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Write Gradle build properties to `~/.gradle/gradle.properties` + run: | + mkdir -p ~/.gradle + printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties + printf "org.gradle.vfs.watch=false\n" >> ~/.gradle/gradle.properties + shell: bash + + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + + - uses: gradle/gradle-build-action@v2 + continue-on-error: true + with: + build-root-directory: sample + gradle-version: ${{ matrix.gradle }} + arguments: assemble -PagpVersion=${{ matrix.agp }} --continue + + - name: Upload reports + if: ${{ failure() }} + uses: actions/upload-artifact@v3 + with: + name: "sample-reports-${{ matrix.gradle }}-${{ matrix.java }}-${{ matrix.agp }}" + path: "${{ github.workspace }}/**/build/reports/" diff --git a/licensee-for-android/api/licensee-for-android.api b/licensee-for-android/api/licensee-for-android.api index d110e99..9824bcf 100644 --- a/licensee-for-android/api/licensee-for-android.api +++ b/licensee-for-android/api/licensee-for-android.api @@ -13,16 +13,17 @@ public abstract class se/premex/gross/CodeGenerationTask : org/gradle/api/Defaul public abstract fun getOutputDirectory ()Lorg/gradle/api/file/DirectoryProperty; } -public abstract interface class se/premex/gross/GrossExtension { - public abstract fun getAndroidAssetFileName ()Lorg/gradle/api/provider/Property; - public abstract fun getEnableAndroidAssetGeneration ()Lorg/gradle/api/provider/Property; - public abstract fun getEnableKotlinCodeGeneration ()Lorg/gradle/api/provider/Property; - public abstract fun getSingularVariantName ()Lorg/gradle/api/provider/Property; -} - public final class se/premex/gross/GrossPlugin : org/gradle/api/Plugin { public fun ()V public synthetic fun apply (Ljava/lang/Object;)V public fun apply (Lorg/gradle/api/Project;)V } +public class se/premex/gross/LicenseeForAndroidExtension { + public fun (Lorg/gradle/api/model/ObjectFactory;)V + public final fun getAndroidAssetFileName ()Lorg/gradle/api/provider/Property; + public final fun getEnableAndroidAssetGeneration ()Lorg/gradle/api/provider/Property; + public final fun getEnableKotlinCodeGeneration ()Lorg/gradle/api/provider/Property; + public final fun getSingularVariantName ()Lorg/gradle/api/provider/Property; +} + diff --git a/sample/settings.gradle b/sample/settings.gradle index b5d911e..e3f7d6b 100644 --- a/sample/settings.gradle +++ b/sample/settings.gradle @@ -17,6 +17,15 @@ pluginManagement { } } } + if (settings.hasProperty("agpVersion")) { + def agpVersion = settings.agpVersion + logger.quiet("AGP version=$agpVersion") + resolutionStrategy.eachPlugin { + if (requested.id.id == "com.android.library") { + useModule("com.android.tools.build:gradle:$agpVersion") + } + } + } } dependencyResolutionManagement {