buildSrc/src/main/kotlin/AndroidPlayStorePublisher.kt
author Da Risk <da_risk@geekorum.com>
Fri, 08 May 2020 21:33:19 -0400
changeset 1 831cffa9c991
child 10 9aad34f43f71
permissions -rw-r--r--
source import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     1
package com.geekorum.build
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
import com.android.build.gradle.AppExtension
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     4
import com.github.triplet.gradle.play.PlayPublisherExtension
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     5
import org.gradle.api.NamedDomainObjectContainer
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     6
import org.gradle.api.Project
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     7
import org.gradle.api.plugins.ExtensionAware
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     8
import org.gradle.kotlin.dsl.apply
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     9
import org.gradle.kotlin.dsl.configure
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
import org.gradle.kotlin.dsl.getByType
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
import org.gradle.kotlin.dsl.the
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
// Configuration for "com.github.triplet.play" plugin
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
// This configuration expects the given properties
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
// PLAY_STORE_JSON_KEY_FILE: google play console service credentials json file to use
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
// PLAY_STORE_TRACK: track to publish the build, default to internal but can be set to alpha, beta or production
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
// PLAY_STORE_FROM_TRACK: track from which to promote a build, default to internal but can be set to alpha, beta or production
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
internal fun Project.configureAndroidPlayStorePublisher(): Unit {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    21
    apply(plugin = "com.github.triplet.play")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
    configure<PlayPublisherExtension> {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    23
        defaultToAppBundles = true
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
        serviceAccountCredentials = file(properties["PLAY_STORE_JSON_KEY_FILE"]!!)
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
        track = properties.getOrDefault("PLAY_STORE_TRACK", "internal") as String
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
        fromTrack = properties.getOrDefault("PLAY_STORE_FROM_TRACK", "internal") as String
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
    }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
    val android = the<AppExtension>() as ExtensionAware
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
    tasks.apply {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
        register("publishToGooglePlayStore") {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
            group = "Continuous Delivery"
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
            description = "Publish project to Google play store"
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
            dependsOn(named("publish"))
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    38
        // only there for consistent naming scheme
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    39
        register("promoteOnGooglePlayStore") {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
            group = "Continuous Delivery"
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
            description = "Promote project Google play store"
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
            dependsOn(named("promoteArtifact"))
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
    }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    45
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
}