Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ fun ApplicationAndroidComponentsExtension.configure(
val sentryTelemetryProvider =
variant.configureTelemetry(project, extension, cliExecutable, sentryOrg, buildEvents)

variant.configureDependenciesTask(project, extension, sentryTelemetryProvider)
val reportDependenciesTask =
variant.configureDependenciesTask(project, extension, sentryTelemetryProvider)

// TODO: do this only once, and all other tasks should be SentryVariant.configureSomething
val sentryVariant = AndroidVariant74(variant)
Expand Down Expand Up @@ -164,6 +165,7 @@ fun ApplicationAndroidComponentsExtension.configure(
sentryTelemetryProvider,
tasksGeneratingProperties,
variant.name.capitalized,
reportDependenciesTask,
)

assetsWiredWithDirectories(
Expand Down Expand Up @@ -338,7 +340,7 @@ private fun Variant.configureDependenciesTask(
project: Project,
extension: SentryPluginExtension,
sentryTelemetryProvider: Provider<SentryTelemetryService>,
) {
): TaskProvider<SentryExternalDependenciesReportTaskV2>? {
if (extension.includeDependenciesReport.get()) {
val reportDependenciesTask =
SentryExternalDependenciesReportTaskV2.register(
Comment thread
sentry[bot] marked this conversation as resolved.
Expand All @@ -350,8 +352,9 @@ private fun Variant.configureDependenciesTask(
includeReport = extension.includeDependenciesReport,
taskSuffix = name.capitalized,
)
sources.assets?.addGeneratedSourceDirectory(reportDependenciesTask) { task -> task.output }
Comment thread
cursor[bot] marked this conversation as resolved.
return reportDependenciesTask
}
return null
}

private fun ApplicationVariant.configureProguardMappingsTasks(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package io.sentry.android.gradle.tasks

import io.sentry.android.gradle.extensions.SentryPluginExtension
import io.sentry.android.gradle.sourcecontext.getAndDelete
import io.sentry.android.gradle.tasks.dependencies.SentryExternalDependenciesReportTaskV2
import io.sentry.android.gradle.telemetry.SentryTelemetryService
import io.sentry.android.gradle.telemetry.withSentryTelemetry
import io.sentry.android.gradle.util.PropertiesUtil
Expand All @@ -33,6 +34,7 @@ import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
Expand Down Expand Up @@ -72,6 +74,11 @@ abstract class InjectSentryMetaPropertiesIntoAssetsTask : DefaultTask() {
@get:InputFiles
abstract val inputPropertyFiles: ConfigurableFileCollection

@get:PathSensitive(PathSensitivity.NONE)
@get:InputFiles
@get:Optional
abstract val dependenciesReportDir: DirectoryProperty

@TaskAction
fun taskAction() {
val input = inputDir.get().asFile
Expand All @@ -80,6 +87,14 @@ abstract class InjectSentryMetaPropertiesIntoAssetsTask : DefaultTask() {

input.copyRecursively(output, overwrite = true)

// Copy the dependencies report if present
val depReportDir = dependenciesReportDir.orNull?.asFile
if (depReportDir != null && depReportDir.exists()) {
depReportDir.listFiles()?.forEach { file ->
file.copyTo(File(output, file.name), overwrite = true)
}
}

// skip writing the properties file if there are no input property files
// this avoids generating an empty properties file when all Sentry features are disabled
if (inputPropertyFiles.isEmpty) {
Expand Down Expand Up @@ -108,6 +123,7 @@ abstract class InjectSentryMetaPropertiesIntoAssetsTask : DefaultTask() {
sentryTelemetryProvider: Provider<SentryTelemetryService>?,
tasksGeneratingProperties: List<TaskProvider<out PropertiesFileOutputTask>>,
taskSuffix: String = "",
reportDependenciesTask: TaskProvider<SentryExternalDependenciesReportTaskV2>? = null,
): TaskProvider<InjectSentryMetaPropertiesIntoAssetsTask> {
val inputFiles: List<Provider<RegularFile>> =
tasksGeneratingProperties.mapNotNull { it.flatMap { task -> task.outputFile } }
Expand All @@ -116,6 +132,9 @@ abstract class InjectSentryMetaPropertiesIntoAssetsTask : DefaultTask() {
InjectSentryMetaPropertiesIntoAssetsTask::class.java,
) { task ->
task.inputPropertyFiles.setFrom(inputFiles)
reportDependenciesTask?.let { depTask ->
task.dependenciesReportDir.set(depTask.flatMap { it.output })
}

task.withSentryTelemetry(extension, sentryTelemetryProvider)
}
Expand Down
Loading