ZaharL
1/18/2020 - 12:47 PM

Versioning

android {
def versionPropsFile = file('version.properties')

    if (versionPropsFile.canRead()) {
        def Properties versionProps = new Properties()
        versionProps.load(new FileInputStream(versionPropsFile))

        def value = 0

        def runTasks = gradle.startParameter.taskNames

        if (runTasks.toString().contains('assembleRelease')) {
            value = 1
        }
        def versionMajor = 1
        def versionMinor = 0
        def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value
        def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1
        def versionNumber = versionProps['VERSION_NUMBER'].toInteger() + value

        versionProps['VERSION_PATCH'] = versionPatch.toString()
        versionProps['VERSION_BUILD'] = versionBuild.toString()
        versionProps['VERSION_NUMBER'] = versionNumber.toString()

        versionProps.store(versionPropsFile.newWriter(), null)

        defaultConfig {
            applicationId "com.leaditteam.fast2"
            minSdkVersion 23
            targetSdkVersion 28
            versionCode versionNumber
            versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild})"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

            kapt {
                arguments {
                    arg("room.schemaLocation", "$projectDir/schemas".toString())
                }
            }
        }
    } else {
        trow new GradleException("Could not read version.properties!")
    }
}
VERSION_NUMBER=60
VERSION_BUILD=1966
VERSION_PATCH=60