diff --git a/README.md b/README.md index 7d2402e..a054ecc 100644 --- a/README.md +++ b/README.md @@ -97,8 +97,8 @@ The `emulatorwtf` plugin DSL supports the following configuration options: ```groovy emulatorwtf { - // CLI version to use, defaults to 0.12.1 - version = '0.12.1' + // CLI version to use, defaults to 0.12.5 + version = '0.12.5' // emulator.wtf API token, we recommend either using the EW_API_TOKEN env var // instead of this or passing this value in via a project property @@ -293,7 +293,7 @@ The plugin is compatible with any working combination of these ranges: | Component | Oldest | Newest | |-----------------------|--------|----------------| | JDK | 11 | 24 | -| Gradle | 7.0.2 | 8.14 | -| Android Gradle Plugin | 7.0.0 | 8.11.0-alpha10 | +| Gradle | 7.0.2 | 9.0.0-rc-2 | +| Android Gradle Plugin | 7.0.0 | 8.12.0-alpha08 | NOTE: only the latest of any prerelease versions (`alpha`, `beta`, `rc`) is supported. diff --git a/changelog.yaml b/changelog.yaml index efc6346..2406f21 100644 --- a/changelog.yaml +++ b/changelog.yaml @@ -6,8 +6,5 @@ # (Markdown is supported and encouraged) unreleased: -- | - Fixed `Invocation of 'Task.project' by task '...' at execution time is unsupported` errors when using the configuration cache - and `TestReporter.GRADLE_TEST_REPORTING_API` together. -- | - Fixed: no test results were reported to the Gradle Test Reporting API when the test task failed +- "Improved: better upload performance when testing large apk files containing native libraries." +- "Improved: bumped default `ew-cli` version to 0.12.5." diff --git a/develocity-reporter/src/lint/baseline.xml b/develocity-reporter/src/lint/baseline.xml index 359af8c..2eff795 100644 --- a/develocity-reporter/src/lint/baseline.xml +++ b/develocity-reporter/src/lint/baseline.xml @@ -1,5 +1,5 @@ - + - + + + + + + + + + @@ -30,7 +52,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -52,7 +74,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/gradle-plugin-core/src/main/java/wtf/emulator/setup/ProjectConfigurator.java b/gradle-plugin-core/src/main/java/wtf/emulator/setup/ProjectConfigurator.java index 6b39a24..daa244e 100644 --- a/gradle-plugin-core/src/main/java/wtf/emulator/setup/ProjectConfigurator.java +++ b/gradle-plugin-core/src/main/java/wtf/emulator/setup/ProjectConfigurator.java @@ -112,6 +112,8 @@ private Provider createToolConfiguration() { } private Configuration createResultsExportConfiguration() { + // has to be created eagerly, otherwise nothing will run from the summary tasks + // TODO(madis) find a better workaround for this final Configuration resultsExportConfig = target.getConfigurations().maybeCreate(RESULTS_EXPORT_CONFIGURATION); resultsExportConfig.setCanBeConsumed(true); resultsExportConfig.setCanBeResolved(true); @@ -127,6 +129,8 @@ private Configuration createResultsExportConfiguration() { } private Provider createResultsImportConfiguration(Configuration resultsExportConfig) { + // has to be created eagerly, otherwise nothing will run from the summary tasks + // TODO(madis) find a better workaround for this final Configuration resultsConfig = target.getConfigurations().maybeCreate(RESULTS_CONFIGURATION); resultsConfig.setCanBeConsumed(false); resultsConfig.setCanBeResolved(false); diff --git a/gradle-plugin-core/src/main/java/wtf/emulator/setup/VariantConfigurator.java b/gradle-plugin-core/src/main/java/wtf/emulator/setup/VariantConfigurator.java index b88372f..7ef1b50 100644 --- a/gradle-plugin-core/src/main/java/wtf/emulator/setup/VariantConfigurator.java +++ b/gradle-plugin-core/src/main/java/wtf/emulator/setup/VariantConfigurator.java @@ -13,6 +13,7 @@ import com.android.build.gradle.internal.attributes.VariantAttr; import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; +import org.gradle.api.provider.Provider; import wtf.emulator.GradleCompat; import java.util.Optional; @@ -93,14 +94,16 @@ private void configureTestVariant(TestExtension android, ApplicationVariant vari // look up the referenced target variant // TODO(madis) use artifact apis here instead? - Configuration testedApks = target.getConfigurations().maybeCreate(variant.getName() + "TestedApks"); final String variantName = variant.getName(); + Provider testedApks = target.getConfigurations().named(variantName + "TestedApks"); task.getApks().set( - testedApks.getIncoming().artifactView(view -> { - view.getAttributes().attribute(VariantAttr.ATTRIBUTE, - target.getObjects().named(VariantAttr.class, variantName)); - view.getAttributes().attribute(compat.getArtifactTypeAttribute(), "apk"); - }).getFiles() + testedApks.map(it -> + it.getIncoming().artifactView(view -> { + view.getAttributes().attribute(VariantAttr.ATTRIBUTE, + target.getObjects().named(VariantAttr.class, variantName)); + view.getAttributes().attribute(compat.getArtifactTypeAttribute(), "apk"); + }).getFiles() + ) ); }); } diff --git a/gradle.properties b/gradle.properties index 22e9568..03fcf1d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Publishing GROUP=wtf.emulator -VERSION_NAME=0.19.2 +VERSION_NAME=0.19.3 POM_NAME=emulator.wtf Gradle Plugin POM_DESCRIPTION=With this Gradle plugin you can run your Android instrumentation tests with emulator.wtf diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index acfca88..3e98912 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,24 +1,24 @@ [versions] autovalue = "1.11.0" autovalue-gson = "1.3.1" -lint = "8.11.0-alpha10" +lint = "8.12.0-alpha08" [plugins] -buildconfig = { id = "com.github.gmazzo.buildconfig", version = "5.6.5" } +buildconfig = { id = "com.github.gmazzo.buildconfig", version = "5.6.7" } lint = { id = "com.android.lint", version.ref = "lint" } [libraries] -gradle-plugins-publish = "com.vanniktech:gradle-maven-publish-plugin:0.32.0" +gradle-plugins-publish = "com.vanniktech:gradle-maven-publish-plugin:0.34.0" gradle-plugins-lint = { module = "com.android.lint:com.android.lint.gradle.plugin ", version.ref = "lint" } agp = "com.android.tools.build:gradle:7.0.0" -develocity = "com.gradle.develocity:com.gradle.develocity.gradle.plugin:4.0.1" +develocity = "com.gradle.develocity:com.gradle.develocity.gradle.plugin:4.0.2" gradle-api-v70 = "dev.gradleplugins:gradle-api:7.0" gradle-api-v74 = "dev.gradleplugins:gradle-api:7.4" -lint-gradle = "androidx.lint:lint-gradle:1.0.0-alpha04" +lint-gradle = "androidx.lint:lint-gradle:1.0.0-alpha05" semver4j = "com.vdurmont:semver4j:3.1.0" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 9bbc975..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b..d4081da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index faf9300..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/integration-test/latest/gradle/libs.versions.toml b/integration-test/latest/gradle/libs.versions.toml index 2f78c1b..f42c698 100644 --- a/integration-test/latest/gradle/libs.versions.toml +++ b/integration-test/latest/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.11.0-alpha10" +agp = "8.12.0-alpha08" [plugins] android-application = { id = "com.android.application", version.ref = "agp" } diff --git a/integration-test/latest/gradle/wrapper/gradle-wrapper.jar b/integration-test/latest/gradle/wrapper/gradle-wrapper.jar index 1b33c55..8bdaf60 100644 Binary files a/integration-test/latest/gradle/wrapper/gradle-wrapper.jar and b/integration-test/latest/gradle/wrapper/gradle-wrapper.jar differ diff --git a/integration-test/latest/gradle/wrapper/gradle-wrapper.properties b/integration-test/latest/gradle/wrapper/gradle-wrapper.properties index ca025c8..4137226 100644 --- a/integration-test/latest/gradle/wrapper/gradle-wrapper.properties +++ b/integration-test/latest/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-rc-2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/integration-test/latest/gradlew b/integration-test/latest/gradlew index 23d15a9..ef07e01 100755 --- a/integration-test/latest/gradlew +++ b/integration-test/latest/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.