Enable stricter validation for build-logic convention plugins

Change-Id: I1955393c76e91bebfe4b7e349734c81a10263c8c
pull/1081/head
Alex Vanyo 7 months ago
parent b39f3f33d8
commit 8a992996a4

@ -39,6 +39,9 @@ jobs:
- name: Setup Gradle - name: Setup Gradle
uses: gradle/gradle-build-action@v2 uses: gradle/gradle-build-action@v2
- name: Check build-logic
run: ./gradlew check -p build-logic
- name: Check spotless - name: Check spotless
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache

@ -43,6 +43,13 @@ dependencies {
compileOnly(libs.ksp.gradlePlugin) compileOnly(libs.ksp.gradlePlugin)
} }
tasks {
validatePlugins {
enableStricterValidation.set(true)
failOnWarning.set(true)
}
}
gradlePlugin { gradlePlugin {
plugins { plugins {
register("androidApplicationCompose") { register("androidApplicationCompose") {

@ -26,11 +26,14 @@ import org.gradle.api.Project
import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFileProperty import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property import org.gradle.api.provider.Property
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Copy import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.Input import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.OutputFile 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.api.tasks.TaskAction
import org.gradle.configurationcache.extensions.capitalized import org.gradle.configurationcache.extensions.capitalized
import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.register
@ -40,14 +43,17 @@ import java.io.File
import java.nio.file.Files import java.nio.file.Files
import javax.inject.Inject import javax.inject.Inject
@CacheableTask
abstract class GenerateBadgingTask : DefaultTask() { abstract class GenerateBadgingTask : DefaultTask() {
@get:OutputFile @get:OutputFile
abstract val badging: RegularFileProperty abstract val badging: RegularFileProperty
@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile @get:InputFile
abstract val apk: RegularFileProperty abstract val apk: RegularFileProperty
@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile @get:InputFile
abstract val aapt2Executable: RegularFileProperty abstract val aapt2Executable: RegularFileProperty
@ -68,6 +74,7 @@ abstract class GenerateBadgingTask : DefaultTask() {
} }
} }
@CacheableTask
abstract class CheckBadgingTask : DefaultTask() { abstract class CheckBadgingTask : DefaultTask() {
// In order for the task to be up-to-date when the inputs have not changed, // In order for the task to be up-to-date when the inputs have not changed,
@ -76,9 +83,11 @@ abstract class CheckBadgingTask : DefaultTask() {
@get:OutputDirectory @get:OutputDirectory
abstract val output: DirectoryProperty abstract val output: DirectoryProperty
@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile @get:InputFile
abstract val goldenBadging: RegularFileProperty abstract val goldenBadging: RegularFileProperty
@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile @get:InputFile
abstract val generatedBadging: RegularFileProperty abstract val generatedBadging: RegularFileProperty

@ -30,7 +30,10 @@ import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskAction
import org.gradle.work.DisableCachingByDefault
import java.io.File import java.io.File
internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtension<*, *, *>) { internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtension<*, *, *>) {
@ -62,10 +65,14 @@ internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtensio
} }
} }
@DisableCachingByDefault(because = "Prints output")
internal abstract class PrintApkLocationTask : DefaultTask() { internal abstract class PrintApkLocationTask : DefaultTask() {
@get:PathSensitive(PathSensitivity.RELATIVE)
@get:InputDirectory @get:InputDirectory
abstract val apkFolder: DirectoryProperty abstract val apkFolder: DirectoryProperty
@get:PathSensitive(PathSensitivity.RELATIVE)
@get:InputFiles @get:InputFiles
abstract val sources: ListProperty<Directory> abstract val sources: ListProperty<Directory>

Loading…
Cancel
Save