使用 Gradle 构建脚本中的版本更新 TeamCity 构建号

Update TeamCity Build Number with version in Gradle build script

我有一个 gradle 构建脚本如下:

buildscript {
    repositories {
         //Some repo
    }
        dependencies {
            classpath "com.palantir.gradle.gitversion:gradle-git-version:0.8.0"
        }
    }
}
apply plugin: 'com.palantir.git-version'

version gitVersion()

我想用 gitVersion() 函数中 version 的值更新 TeamCity build number。有办法吗?

我知道在 Maven 世界中,为了让 TeamCity 获取 pom.xml 文件中的版本,我可以将 TeamCity 内部版本号指定为 %maven.project.version%。但是如何用 Gradle 实现同样的事情呢?

一次尝试:

此外,我想到了一个创建 Gradle Exec 任务的解决方案,通过 Service Message(doc here)更新 TeamCity 内部版本号:

task updateTeamCityBuildNumber(type: Exec) {
    x=version
    echo $x
    echo "##teamcity[setParameter name='buildNumber' value='${x}']"
}

但是我得到了这个错误: Could not set unknown property 'x' for task ':updateTeamCityBuildNumber' of type org.gradle.api.tasks.Exec

所以这个方向的另一个问题是如何将变量version传递给Gradle Exec任务并在下面的"echo"语句中引用它?

(我的 TeamCity 构建代理是 Linux)

谢谢,如果您需要更多详细信息,请告诉我

尝试将 echo 命令替换为

println "##teamcity[buildNumber '${version}']"

还有关于 Confluence 的文档 page

截至 TeamCity Professional 2017.2(内部版本 50574)原始变体

println "##teamcity[setParameter name='buildNumber' value='${x}']"

又开始工作了。