Skip to content

Commit 8a99299

Browse files
committed
Enable stricter validation for build-logic convention plugins
Change-Id: I1955393c76e91bebfe4b7e349734c81a10263c8c
1 parent b39f3f3 commit 8a99299

File tree

4 files changed

+26
-0
lines changed

4 files changed

+26
-0
lines changed

.github/workflows/Build.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ jobs:
3939
- name: Setup Gradle
4040
uses: gradle/gradle-build-action@v2
4141

42+
- name: Check build-logic
43+
run: ./gradlew check -p build-logic
44+
4245
- name: Check spotless
4346
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache
4447

build-logic/convention/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ dependencies {
4343
compileOnly(libs.ksp.gradlePlugin)
4444
}
4545

46+
tasks {
47+
validatePlugins {
48+
enableStricterValidation.set(true)
49+
failOnWarning.set(true)
50+
}
51+
}
52+
4653
gradlePlugin {
4754
plugins {
4855
register("androidApplicationCompose") {

build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/Badging.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,14 @@ import org.gradle.api.Project
2626
import org.gradle.api.file.DirectoryProperty
2727
import org.gradle.api.file.RegularFileProperty
2828
import org.gradle.api.provider.Property
29+
import org.gradle.api.tasks.CacheableTask
2930
import org.gradle.api.tasks.Copy
3031
import org.gradle.api.tasks.Input
3132
import org.gradle.api.tasks.InputFile
3233
import org.gradle.api.tasks.OutputDirectory
3334
import org.gradle.api.tasks.OutputFile
35+
import org.gradle.api.tasks.PathSensitive
36+
import org.gradle.api.tasks.PathSensitivity
3437
import org.gradle.api.tasks.TaskAction
3538
import org.gradle.configurationcache.extensions.capitalized
3639
import org.gradle.kotlin.dsl.register
@@ -40,14 +43,17 @@ import java.io.File
4043
import java.nio.file.Files
4144
import javax.inject.Inject
4245

46+
@CacheableTask
4347
abstract class GenerateBadgingTask : DefaultTask() {
4448

4549
@get:OutputFile
4650
abstract val badging: RegularFileProperty
4751

52+
@get:PathSensitive(PathSensitivity.NONE)
4853
@get:InputFile
4954
abstract val apk: RegularFileProperty
5055

56+
@get:PathSensitive(PathSensitivity.NONE)
5157
@get:InputFile
5258
abstract val aapt2Executable: RegularFileProperty
5359

@@ -68,6 +74,7 @@ abstract class GenerateBadgingTask : DefaultTask() {
6874
}
6975
}
7076

77+
@CacheableTask
7178
abstract class CheckBadgingTask : DefaultTask() {
7279

7380
// In order for the task to be up-to-date when the inputs have not changed,
@@ -76,9 +83,11 @@ abstract class CheckBadgingTask : DefaultTask() {
7683
@get:OutputDirectory
7784
abstract val output: DirectoryProperty
7885

86+
@get:PathSensitive(PathSensitivity.NONE)
7987
@get:InputFile
8088
abstract val goldenBadging: RegularFileProperty
8189

90+
@get:PathSensitive(PathSensitivity.NONE)
8291
@get:InputFile
8392
abstract val generatedBadging: RegularFileProperty
8493

build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/PrintTestApks.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ import org.gradle.api.tasks.Input
3030
import org.gradle.api.tasks.InputDirectory
3131
import org.gradle.api.tasks.InputFiles
3232
import org.gradle.api.tasks.Internal
33+
import org.gradle.api.tasks.PathSensitive
34+
import org.gradle.api.tasks.PathSensitivity
3335
import org.gradle.api.tasks.TaskAction
36+
import org.gradle.work.DisableCachingByDefault
3437
import java.io.File
3538

3639
internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtension<*, *, *>) {
@@ -62,10 +65,14 @@ internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtensio
6265
}
6366
}
6467

68+
@DisableCachingByDefault(because = "Prints output")
6569
internal abstract class PrintApkLocationTask : DefaultTask() {
70+
71+
@get:PathSensitive(PathSensitivity.RELATIVE)
6672
@get:InputDirectory
6773
abstract val apkFolder: DirectoryProperty
6874

75+
@get:PathSensitive(PathSensitivity.RELATIVE)
6976
@get:InputFiles
7077
abstract val sources: ListProperty<Directory>
7178

0 commit comments

Comments
 (0)