Skip to content

Commit

Permalink
Merge pull request #235 from bugsnag/v5-task-inputs
Browse files Browse the repository at this point in the history
Explicitly list task inputs/outputs
  • Loading branch information
fractalwrench authored Jul 20, 2020
2 parents 90637a7 + cc0d189 commit f65039a
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 22 deletions.
6 changes: 0 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -157,12 +157,6 @@ downloadLicenses {
dependencyConfiguration "compile"
}

// waiting for PLAT-4589, temporarily disable input/output checks from gradle development plugin
// https://docs.gradle.org/current/userguide/java_gradle_plugin.html
tasks.named("validatePlugins").configure {
it.enabled = false
}

sourceSets {
main.java.srcDirs += "src/main/kotlin"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import java.io.File
Expand Down Expand Up @@ -48,7 +49,10 @@ abstract class BaseBugsnagManifestUuidTask(objects: ObjectFactory) : DefaultTask
*/
open class BugsnagManifestUuidTask @Inject constructor(objects: ObjectFactory) : BaseBugsnagManifestUuidTask(objects) {

@Internal
lateinit var variantOutput: ApkVariantOutput

@Internal
lateinit var variant: ApkVariant

@TaskAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ class BugsnagPlugin : Plugin<Project> {
return project.tasks.register(taskName, BugsnagUploadNdkTask::class.java) {
it.variantOutput = output
it.variant = variant
it.variantName = taskNameForVariant(variant)
it.projectDir = project.projectDir
it.rootDir = project.rootDir
it.sharedObjectPath = bugsnag.sharedObjectPath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ open class BugsnagPluginExtension {
var releasesEndpoint = "https://build.bugsnag.com"
var isOverwrite = false
var retryCount = 0
var sharedObjectPath: String? = null
var sharedObjectPath: String = ""
var projectRoot: String? = null
var isFailOnUploadError = true
var requestTimeoutMs = 60000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import org.gradle.api.file.RegularFileProperty
import org.gradle.api.logging.LogLevel
import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity.NONE
import org.gradle.api.tasks.TaskAction
Expand All @@ -31,7 +32,10 @@ open class BugsnagReleasesTask @Inject constructor(
description = "Assembles information about the build that will be sent to the releases API"
}

@Internal
lateinit var variantOutput: ApkVariantOutput

@Internal
lateinit var variant: ApkVariant

@get:PathSensitive(NONE)
Expand All @@ -41,11 +45,10 @@ open class BugsnagReleasesTask @Inject constructor(
@TaskAction
fun fetchReleaseInfo() {
val manifestInfo = parseManifestInfo()
val logger = project.logger
val bugsnag = project.extensions.getByType(BugsnagPluginExtension::class.java)
val payload = generateJsonPayload(manifestInfo, bugsnag)
val json = payload.toString()
logger.debug("Releases Payload:\n$json")
project.logger.debug("Releases Payload:\n$json")

object : Call(project) {
@Throws(IOException::class)
Expand Down Expand Up @@ -87,10 +90,8 @@ open class BugsnagReleasesTask @Inject constructor(
}
return false
}
} catch (e: IOException) {
logger.error(bugsnag.releasesEndpoint)
logger.error("Failed to POST request", e)
return false
} catch (exc: IOException) {
throw IllegalStateException("Request to Bugsnag Releases API failed, aborting build.", exc)
} finally {
os?.close()
}
Expand Down
25 changes: 18 additions & 7 deletions src/main/kotlin/com.bugsnag.android.gradle/BugsnagUploadNdkTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity.NONE
import org.gradle.api.tasks.TaskAction
Expand Down Expand Up @@ -46,18 +48,27 @@ open class BugsnagUploadNdkTask @Inject constructor(
description = "Generates and uploads the NDK mapping file(s) to Bugsnag"
}

private var symbolPath: File? = null
lateinit var variantName: String
@Internal
lateinit var projectDir: File

@Internal
lateinit var rootDir: File
var sharedObjectPath: String? = null
lateinit var variantOutput: ApkVariantOutput
lateinit var variant: ApkVariant

@Input
lateinit var sharedObjectPath: String

@get:PathSensitive(NONE)
@get:InputFile
override val manifestInfoFile: RegularFileProperty = objects.fileProperty()

@Internal
lateinit var variantOutput: ApkVariantOutput

@Internal
lateinit var variant: ApkVariant

private var symbolPath: File? = null

@TaskAction
fun upload() {
symbolPath = findSymbolPath(variantOutput)
Expand All @@ -73,8 +84,8 @@ open class BugsnagUploadNdkTask @Inject constructor(
soFiles.addAll(findSharedObjectFiles(objFolder))
soFiles.addAll(findSharedObjectFiles(soFolder))
}
if (sharedObjectPath != null) {
val file = File(projectDir.path, sharedObjectPath!!)
if (sharedObjectPath != "") {
val file = File(projectDir.path, sharedObjectPath)
soFiles.addAll(findSharedObjectFiles(file))
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.gradle.api.Project
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity.NONE
import org.gradle.api.tasks.TaskAction
Expand Down Expand Up @@ -42,7 +43,10 @@ open class BugsnagUploadProguardTask @Inject constructor(
description = "Uploads the mapping file to Bugsnag"
}

@Internal
lateinit var variantOutput: ApkVariantOutput

@Internal
lateinit var variant: ApkVariant

@get:PathSensitive(NONE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class PluginExtensionTest {
assertFalse(proj.bugsnag.overwrite)
assertEquals(0, proj.bugsnag.retryCount)
assertNull(proj.bugsnag.uploadNdkMappings)
assertNull(proj.bugsnag.sharedObjectPath)
assertEquals("", proj.bugsnag.sharedObjectPath)
assertTrue(proj.bugsnag.failOnUploadError)
}

Expand Down

0 comments on commit f65039a

Please sign in to comment.