fix(rename-artifacts): resolve version from outputs directly

Due to reasons I don't fully understand this cannot be resolved from
the `android` DSL so we're just cutting it out and introspecting the
outputs we're already processing to discover the version name
This commit is contained in:
Harsh Shandilya 2022-09-11 01:23:34 +05:30
parent a19aa16924
commit f1bca7522c
No known key found for this signature in database

View file

@ -2,7 +2,7 @@ package dev.msfjarvis.aps.gradle
import com.android.build.api.artifact.SingleArtifact
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import com.android.build.api.variant.VariantOutputConfiguration
import dev.msfjarvis.aps.gradle.artifacts.CollectApksTask
import dev.msfjarvis.aps.gradle.artifacts.CollectBundleTask
import org.gradle.api.Plugin
@ -15,7 +15,6 @@ class RenameArtifactsPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.pluginManager.withPlugin("com.android.application") {
val android = project.extensions.getByType<BaseAppModuleExtension>()
project.extensions.getByType<ApplicationAndroidComponentsExtension>().run {
onVariants { variant ->
project.tasks.register<CollectApksTask>("collect${variant.name.capitalize()}Apks") {
@ -25,8 +24,12 @@ class RenameArtifactsPlugin : Plugin<Project> {
outputDirectory.set(project.layout.projectDirectory.dir("outputs"))
}
project.tasks.register<CollectBundleTask>("collect${variant.name.capitalize()}Bundle") {
val mainOutput =
variant.outputs.single {
it.outputType == VariantOutputConfiguration.OutputType.SINGLE
}
variantName.set(variant.name)
versionName.set(android.defaultConfig.versionName)
versionName.set(mainOutput.versionName)
bundleFile.set(variant.artifacts.get(SingleArtifact.BUNDLE))
outputDirectory.set(project.layout.projectDirectory.dir("outputs"))
}