Skip to content

Commit 4472d46

Browse files
runningcoderomtsn
andauthored
Add stricter plugin validation and fix issues. (#894)
* Add stricter plugin validation and fix issues. This adds stricter plugin validation to check that all tasks are declared cacheable or not and all properties are correctly marked. This also fixes issues that the task discovered and adds it as a dependency to the check task. * Add changelog * Update CHANGELOG.md Co-authored-by: Roman Zavarnitsyn <[email protected]> * Set path sensitivity to none * Update plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/SentryUploadProguardMappingsTask.kt Co-authored-by: Roman Zavarnitsyn <[email protected]> --------- Co-authored-by: Roman Zavarnitsyn <[email protected]>
1 parent 59a8854 commit 4472d46

File tree

9 files changed

+45
-5
lines changed

9 files changed

+45
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
### Fixes
6+
7+
- Enable caching for BundleSourcesTask ([#894](https://github.com/getsentry/sentry-android-gradle-plugin/pull/894)
8+
59
### Dependencies
610

711
- Bump Android SDK from v8.12.0 to v8.13.2 ([#896](https://github.com/getsentry/sentry-android-gradle-plugin/pull/896))

plugin-build/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,3 +319,10 @@ buildConfig {
319319
}
320320

321321
tasks.register<ASMifyTask>("asmify")
322+
323+
tasks.named("check").configure { dependsOn(tasks.named("validatePlugins")) }
324+
325+
tasks.withType<ValidatePlugins>().configureEach {
326+
failOnWarning.set(true)
327+
enableStricterValidation.set(true)
328+
}

plugin-build/src/main/kotlin/io/sentry/android/gradle/sourcecontext/BundleSourcesTask.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.gradle.api.file.DirectoryProperty
1717
import org.gradle.api.file.RegularFileProperty
1818
import org.gradle.api.provider.Property
1919
import org.gradle.api.provider.Provider
20+
import org.gradle.api.tasks.CacheableTask
2021
import org.gradle.api.tasks.Input
2122
import org.gradle.api.tasks.InputDirectory
2223
import org.gradle.api.tasks.InputFile
@@ -25,6 +26,7 @@ import org.gradle.api.tasks.PathSensitive
2526
import org.gradle.api.tasks.PathSensitivity
2627
import org.gradle.api.tasks.TaskProvider
2728

29+
@CacheableTask
2830
abstract class BundleSourcesTask : SentryCliExecTask() {
2931

3032
init {
@@ -41,7 +43,9 @@ abstract class BundleSourcesTask : SentryCliExecTask() {
4143
@get:InputDirectory
4244
abstract val sourceDir: DirectoryProperty
4345

44-
@get:InputFile abstract val bundleIdFile: RegularFileProperty
46+
@get:InputFile
47+
@get:PathSensitive(PathSensitivity.NONE)
48+
abstract val bundleIdFile: RegularFileProperty
4549

4650
@get:OutputDirectory abstract val output: DirectoryProperty
4751

plugin-build/src/main/kotlin/io/sentry/android/gradle/sourcecontext/UploadSourceBundleTask.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ import org.gradle.api.provider.Property
1515
import org.gradle.api.provider.Provider
1616
import org.gradle.api.tasks.Input
1717
import org.gradle.api.tasks.InputDirectory
18+
import org.gradle.api.tasks.PathSensitive
19+
import org.gradle.api.tasks.PathSensitivity
1820
import org.gradle.api.tasks.TaskProvider
21+
import org.gradle.work.DisableCachingByDefault
1922

23+
@DisableCachingByDefault(because = "Uploads should not be cached")
2024
abstract class UploadSourceBundleTask : SentryCliExecTask() {
2125

2226
init {
@@ -38,7 +42,9 @@ abstract class UploadSourceBundleTask : SentryCliExecTask() {
3842

3943
@get:Input abstract val includeSourceContext: Property<Boolean>
4044

41-
@get:InputDirectory abstract val sourceBundleDir: DirectoryProperty
45+
@get:InputDirectory
46+
@get:PathSensitive(PathSensitivity.RELATIVE)
47+
abstract val sourceBundleDir: DirectoryProperty
4248

4349
@get:Input abstract val autoUploadSourceContext: Property<Boolean>
4450

plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/DirectoryOutputTask.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package io.sentry.android.gradle.tasks
33
import org.gradle.api.DefaultTask
44
import org.gradle.api.file.DirectoryProperty
55
import org.gradle.api.tasks.OutputDirectory
6+
import org.gradle.work.DisableCachingByDefault
67

8+
@DisableCachingByDefault(because = "abstract task, should not be used directly")
79
abstract class DirectoryOutputTask : DefaultTask() {
810

911
@get:OutputDirectory abstract val output: DirectoryProperty

plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/PropertiesFileOutputTask.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package io.sentry.android.gradle.tasks
33
import org.gradle.api.file.RegularFile
44
import org.gradle.api.provider.Provider
55
import org.gradle.api.tasks.Internal
6+
import org.gradle.work.DisableCachingByDefault
67

8+
@DisableCachingByDefault(because = "abstract task, should not be used directly")
79
abstract class PropertiesFileOutputTask : DirectoryOutputTask() {
810
@get:Internal abstract val outputFile: Provider<RegularFile>
911
}

plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/SentryCliExecTask.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,21 @@ import org.gradle.api.tasks.Input
1313
import org.gradle.api.tasks.InputFile
1414
import org.gradle.api.tasks.Internal
1515
import org.gradle.api.tasks.Optional
16+
import org.gradle.api.tasks.PathSensitive
17+
import org.gradle.api.tasks.PathSensitivity
18+
import org.gradle.work.DisableCachingByDefault
1619

20+
@DisableCachingByDefault(because = "abstract task, should not be used directly")
1721
abstract class SentryCliExecTask : Exec() {
1822

1923
@get:Input @get:Optional abstract val debug: Property<Boolean>
2024

2125
@get:Input abstract val cliExecutable: Property<String>
2226

23-
@get:InputFile @get:Optional abstract val sentryProperties: RegularFileProperty
27+
@get:InputFile
28+
@get:Optional
29+
@get:PathSensitive(PathSensitivity.RELATIVE)
30+
abstract val sentryProperties: RegularFileProperty
2431

2532
@get:Input @get:Optional abstract val sentryOrganization: Property<String>
2633

plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/SentryUploadNativeSymbolsTask.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import org.gradle.api.provider.Provider
1616
import org.gradle.api.tasks.Input
1717
import org.gradle.api.tasks.Internal
1818
import org.gradle.api.tasks.TaskProvider
19+
import org.gradle.work.DisableCachingByDefault
1920

21+
@DisableCachingByDefault(because = "Uploads should not be cached")
2022
abstract class SentryUploadNativeSymbolsTask : SentryCliExecTask() {
2123

2224
init {

plugin-build/src/main/kotlin/io/sentry/android/gradle/tasks/SentryUploadProguardMappingsTask.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ import org.gradle.api.provider.Provider
1616
import org.gradle.api.tasks.Input
1717
import org.gradle.api.tasks.InputFile
1818
import org.gradle.api.tasks.InputFiles
19+
import org.gradle.api.tasks.PathSensitive
20+
import org.gradle.api.tasks.PathSensitivity
1921
import org.gradle.api.tasks.TaskProvider
22+
import org.gradle.work.DisableCachingByDefault
2023

24+
@DisableCachingByDefault(because = "Uploads should not be cached")
2125
abstract class SentryUploadProguardMappingsTask : SentryCliExecTask() {
2226

2327
init {
@@ -33,9 +37,11 @@ abstract class SentryUploadProguardMappingsTask : SentryCliExecTask() {
3337
outputs.upToDateWhen { true }
3438
}
3539

36-
@get:InputFile abstract val uuidFile: RegularFileProperty
40+
@get:InputFile @get:PathSensitive(PathSensitivity.NONE) abstract val uuidFile: RegularFileProperty
3741

38-
@get:InputFiles abstract var mappingsFiles: Provider<FileCollection>
42+
@get:InputFiles
43+
@get:PathSensitive(PathSensitivity.RELATIVE)
44+
abstract var mappingsFiles: Provider<FileCollection>
3945

4046
@get:Input abstract val autoUploadProguardMapping: Property<Boolean>
4147

0 commit comments

Comments
 (0)