Skip to content

Commit

Permalink
Enable stricter validation for build-logic convention plugins
Browse files Browse the repository at this point in the history
Change-Id: I1955393c76e91bebfe4b7e349734c81a10263c8c
  • Loading branch information
alexvanyo committed Dec 6, 2023
1 parent b39f3f3 commit 8a99299
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/Build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
- name: Setup Gradle
uses: gradle/gradle-build-action@v2

- name: Check build-logic
run: ./gradlew check -p build-logic

- name: Check spotless
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache

Expand Down
7 changes: 7 additions & 0 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ dependencies {
compileOnly(libs.ksp.gradlePlugin)
}

tasks {
validatePlugins {
enableStricterValidation.set(true)
failOnWarning.set(true)
}
}

gradlePlugin {
plugins {
register("androidApplicationCompose") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,14 @@ import org.gradle.api.Project
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory
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.configurationcache.extensions.capitalized
import org.gradle.kotlin.dsl.register
Expand All @@ -40,14 +43,17 @@ import java.io.File
import java.nio.file.Files
import javax.inject.Inject

@CacheableTask
abstract class GenerateBadgingTask : DefaultTask() {

@get:OutputFile
abstract val badging: RegularFileProperty

@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile
abstract val apk: RegularFileProperty

@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile
abstract val aapt2Executable: RegularFileProperty

Expand All @@ -68,6 +74,7 @@ abstract class GenerateBadgingTask : DefaultTask() {
}
}

@CacheableTask
abstract class CheckBadgingTask : DefaultTask() {

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

@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile
abstract val goldenBadging: RegularFileProperty

@get:PathSensitive(PathSensitivity.NONE)
@get:InputFile
abstract val generatedBadging: RegularFileProperty

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFiles
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.work.DisableCachingByDefault
import java.io.File

internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtension<*, *, *>) {
Expand Down Expand Up @@ -62,10 +65,14 @@ internal fun Project.configurePrintApksTask(extension: AndroidComponentsExtensio
}
}

@DisableCachingByDefault(because = "Prints output")
internal abstract class PrintApkLocationTask : DefaultTask() {

@get:PathSensitive(PathSensitivity.RELATIVE)
@get:InputDirectory
abstract val apkFolder: DirectoryProperty

@get:PathSensitive(PathSensitivity.RELATIVE)
@get:InputFiles
abstract val sources: ListProperty<Directory>

Expand Down

0 comments on commit 8a99299

Please sign in to comment.