android - 从 Android Gradle 访问 Azure DevOps 变量

标签 android gradle azure-devops azure-pipelines versioning

在内部构建我的 Android 应用程序时 DevOps Pipeline , 我想访问预定义的 Azure DevOps variables从我的 gradle 脚本中,它看起来像这样:

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 工作正常,但我不知道如何访问 Build.BuildNumber Azure DevOps 管道中的变量。

最佳答案

好的,我想出了如何访问变量。诀窍是用下划线替换点,用大写字母替换小写字母。

所以

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

关于android - 从 Android Gradle 访问 Azure DevOps 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106914/

相关文章:

android - (Android - Gradle)Jacoco 覆盖范围不排除某些类文件

azure-devops - Azure Devops - 将 YAML 脚本中的变量设置为日期时间

java - 需要从android studio中的assets文件夹中读取txt文件

java - 无法从getApplication()将异常MultiDexApplication强制转换为类

android - 数据库未关闭

java - 使用注解@SpringBootApplication 进行配置

azure - 如何使用 Spring Boot 应用程序从 azure key Vault 获取或检索 key / secret

Azure DevOps 自托管代理 - 如何复制云托管代理?

java - Delphi xe5 exec root命令转换

android - 尝试在运行 4.2 的设备上访问 Picasa 图像时出现安全异常