【问题标题】:Access Azure DevOps variables from Android Gradle从 Android Gradle 访问 Azure DevOps 变量
【发布时间】:2020-03-25 04:14:29
【问题描述】:

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 Pipeline 中的Build.BuildNumber 变量。

【问题讨论】:

    标签: android gradle azure-devops azure-pipelines versioning


    【解决方案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
    

    【讨论】:

    • 你解决的太好了,你可以接受它作为答案。
    • 我知道,但是您必须等待两天才能接受自己的答案。
    • Azure 在他们的文档中提到使用 power shell 脚本时:docs.microsoft.com/en-us/azure/devops/pipelines/release/…
    • 我遇到了同样的问题,我想增加我的构建版本和编号,这些版本和编号存在于我的管道中的 gradle 中。为了将它发布到游戏商店。那么你能添加一个关于你的管道的sn-p吗?
    • @MohamadMousheimish 您可以在上面的问题中看到完整的代码。您还在寻找什么?
    猜你喜欢
    • 2019-11-08
    • 2015-07-19
    • 1970-01-01
    • 2021-09-13
    • 2020-07-24
    • 1970-01-01
    • 2022-11-23
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多