从Android Gradle访问Azure DevOps变量

问题描述 投票:0回答:1

[在DevOps Pipeline中构建Android应用程序时,我想从gradle脚本中访问预定义的Azure DevOps variables,如下所示:

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"
    }

    ...
}

Bitrise上,调用def buildNumber = System.getenv("BITRISE_BUILD_NUMBER") as Integer ?: 1正常工作,但是我不知道如何访问Azure DevOps管道中的Build.BuildNumber变量。

android gradle azure-devops azure-pipelines versioning
1个回答
1
投票

确定,我弄清楚了如何访问变量。技巧是用下划线替换点,用大写字母替换小写字母。

所以

def buildNumber = System.getenv("Build.BuildNumber") as Integer ?: 1

成为

def buildNumber = System.getenv("BUILD_BUILDNUMBER") as Integer ?: 1

并且鉴于Build.BuildNumber看起来像20191129.16,这是一个无效的版本代码,我切换到

def buildNumber = System.getenv("BUILD_BUILDID") as Integer ?: 1
© www.soinside.com 2019 - 2024. All rights reserved.