While building my Android App inside DevOps Pipeline, I want to access the predefined Azure DevOps variables from inside my gradle script, which looks like this:
apply plugin: 'com.android.application'
// When running on the CI, this will return the build-number. Otherwise use 1
def buildNumber = System.getenv("Build.BuildNumber") as Integer ?: 1
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "my.app.id"
minSdkVersion 23
targetSdkVersion 29
versionCode buildNumber
versionName "1.0." + buildNumber
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
...
}
On Bitrise, the call def buildNumber = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 1
worked just fine, but I have no idea, how to access the Build.BuildNumber variable in Azure DevOps Pipeline.
Ok, I figured out how to access the variables. The trick is to replace the dot with an underscore and lowercase letters with uppercase letters.
So
def buildNumber = System.getenv("Build.BuildNumber") as Integer ?: 1
becomes
def buildNumber = System.getenv("BUILD_BUILDNUMBER") as Integer ?: 1
And given that Build.BuildNumber looks like 20191129.16, which is an invalid version code, I switched to
def buildNumber = System.getenv("BUILD_BUILDID") as Integer ?: 1