我需要检索 teamcity.build.branch 的值并将其用作 ANDROID 应用程序的 versionName。我尝试使用以下方法访问此参数:
project.findProperty("teamcity.build.branch")
if (hasProperty("teamcity")) {
teamcity["teamcity.build.number"]
or
teamcity["vcsroot.branch"]
}
System.getenv('teamcity.build.branch')
但是,这些方法都不适合我。
我尝试记录 System.getenv 和 project.properties 中的所有属性,但找不到“branch”属性。
在 TeamCity 属性选项卡中,我可以看到 teamcity.build.branch,因此该属性存在,但我找不到访问它的方法。
它不是环境变量(因此
System.getenv
无法获取它),也不是system.
属性,因此它不会自动传递给构建运行程序。
您有多种选择:
通过 CLI 将其传递给您的构建工具(我认为是 Gradle),如下所示:
... -Dteamcity.build.branch=%teamcity.build.branch%
然后我想您将能够像您已经做的那样在构建脚本中处理它。
将其设为环境变量,以便您的构建可以选择它。这也可以通过两种方式完成:
env.
开头的属性,例如env.APP_VERSION
并将其设置为%teamcity.build.branch%
或您使用的任何模式APP_VERSION=%teamcity.build.branch% gradle ...
在这些情况下,您可以使用类似
System.getenv('APP_VERSION')
之类的东西来使用它。
如果您使用 Gradle 构建运行程序,则可以使用
gradle.properties
并按照下面的文档引用 env.
或 system.
参数。您需要在构建配置中创建相应的属性,并将其设置为包含 %teamcity.build.branch%
的值。
TeamCity 文档的配置构建参数部分提供了有关此内容的更多详细信息。