Skip to content Skip to sidebar Skip to footer

How To Get The Buildtype In A Build.gradle Early On

I have a React Native application and I'm trying to specify the folder for storing the generated source map in project.ext.react like so (I need it to implement a library which wil

Solution 1:

I finally found a way (though its not a very clean one) to look through the array of gradle tasks:

def buildType = gradle.startParameter.taskNames.any{it.toLowerCase().contains("debug")}?"debug":"release"

Solution 2:

We have under the buildTypes configuration inside app.gradle something like this:

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        //def newApkName = "${APP_NAME}-${variant.name}-${variant.versionName}.apk"
        def newApkName = "${APP_NAME}-${variant.name}-r${COMMIT_SHA}-${BRANCH_NAME}-v${variant.versionName}-${BUILD_NUMBER}.apk"

        variableFile.withWriterAppend { out ->
            out.writeLine("${APP_NAME}-${variant.name}=${APP_NAME}-${variant.name}-r${COMMIT_SHA}-${BRANCH_NAME}-v${variant.versionName}-${BUILD_NUMBER}")
            out.writeLine("${APP_NAME}-${variant.name}versionCode=${VERSION_CODE}")
            out.writeLine("${APP_NAME}-${variant.name}versionName=${variant.versionName}")
        }

        output.outputFile = new File(output.outputFile.parent, newApkName)
    }
}

This sets the apk name and the output folder for each buildType defined in gradle. We have buildTypes:

buildTypes {
    debug {
        buildConfigField('String', 'BUILD_ENV', '"Development"')
        minifyEnabled false
    }
    qa {
        signingConfig signingConfigs.release
        minifyEnabled true
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        buildConfigField('String', 'BUILD_ENV', '"QA"')
    }
    release {
        signingConfig signingConfigs.release
        minifyEnabled true
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        buildConfigField('String', 'BUILD_ENV', '"Production"')
    }
}

Post a Comment for "How To Get The Buildtype In A Build.gradle Early On"