android - 从 Android Gradle 访问 Azure DevOps 变量
问题描述
在DevOps Pipeline中构建我的 Android 应用程序时,我想从我的 gradle 脚本中访问预定义的Azure DevOps 变量,如下所示:
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变量。
解决方案
好的,我想出了如何访问变量。诀窍是用下划线替换点,用大写字母替换小写字母。
所以
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
推荐阅读
- c# - 在 C# 中反序列化时,如何在类型继承之前优先考虑 Newtonsoft 的对象引用解析?
- autodesk-forge - PixelCompare 正确校准
- r - 安装 R 包 (R 3.4.4) 时出错,已安装时要求使用此
- r - 按组pmap列以获得加权的行均值
- javascript - Vue JS - 仅检索日期
- python - Pandas 内存使用情况给出了奇怪的估计
- powershell - 如何检测为构建代理配置了代理?
- javascript - 为什么获取的数据不存储在全局变量中,以便我可以在异步函数之外使用它?
- java - 如何将多个图像与 Android Studio 中的其他请求参数一起写入 HttpUrlConnection 的 OutputStream?
- angular - 多个嵌套选项卡中的多个嵌套动态表单组