From 85b8350c8fb42de9c7e81f7657c7401dc98f2f7e Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Wed, 21 Jun 2023 23:00:10 +0530 Subject: [PATCH] fix: add 'runTestsInCI' task to projects for running tests in CI --- .github/workflows/build.yml | 2 +- .idea/compiler.xml | 12 +++++------ .../androidide/plugins/AndroidIDEPlugin.kt | 21 +++++++++++++++++++ build.gradle.kts | 7 +++++-- settings.gradle.kts | 1 - 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5f000ca6..3ec548501 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,7 +122,7 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - name: Run debug tests - run: ./gradlew test --continue + run: ./gradlew runTestsInCI --continue env: ANDROIDIDE_TEST: true IDE_SIGNING_ALIAS: ${{ secrets.IDE_SIGNING_ALIAS }} diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 983e88772..2c33d6782 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -12,18 +12,18 @@ - + - + - + - - - + + + diff --git a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt b/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt index 2052895db..14d27db66 100644 --- a/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt +++ b/build-logic/ide/src/main/java/com/itsaky/androidide/plugins/AndroidIDEPlugin.kt @@ -17,6 +17,7 @@ package com.itsaky.androidide.plugins +import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project @@ -28,5 +29,25 @@ import org.gradle.api.Project class AndroidIDEPlugin : Plugin { override fun apply(target: Project) { + target.run { + if (project.path == rootProject.path) { + throw GradleException("Cannot apply ${AndroidIDEPlugin::class.simpleName} to root project") + } + + val taskName = when { + project.path == ":app" -> "testArm64-v8aDebugUnitTest" + + plugins.hasPlugin("com.android.application") || + plugins.hasPlugin("com.android.library") -> "testDebugUnitTest" + + else -> "test" + } + + logger.info("${project.path} will run task '$taskName' for tests in CI") + + project.tasks.create("runTestsInCI") { + dependsOn(taskName) + } + } } } diff --git a/build.gradle.kts b/build.gradle.kts index e05367a23..d62599c46 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,6 +25,7 @@ import com.vanniktech.maven.publish.JavaLibrary import com.vanniktech.maven.publish.JavadocJar import com.vanniktech.maven.publish.MavenPublishBaseExtension import com.vanniktech.maven.publish.SonatypeHost.Companion.S01 +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("DSL_SCOPE_VIOLATION") plugins { @@ -114,7 +115,9 @@ fun Project.configureBaseExtension() { } subprojects { - apply { plugin(AndroidIDEPlugin::class.java) } + afterEvaluate { + apply { plugin(AndroidIDEPlugin::class.java) } + } project.group = BuildConfig.packageName project.version = rootProject.version @@ -179,7 +182,7 @@ subprojects { } } - tasks.withType().configureEach { + tasks.withType().configureEach { kotlinOptions.jvmTarget = BuildConfig.javaVersion.toString() } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 4911957d0..744897eb0 100755 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -96,6 +96,5 @@ include( ":subprojects:tooling-api-model", ":subprojects:tooling-api-testing", ":subprojects:xml-dom", - ":subprojects:xml-formatter", ":subprojects:xml-utils" ) \ No newline at end of file