0

我有一个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()

我想用函数build number中的值更新 TeamCity 。有没有办法做到这一点?versiongitVersion()

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

一次尝试:

另外,我想到了一个解决方案来创建一个 Gradle Exec 任务来通过服务消息更新 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

所以关于这个方向的另一个问题是,我如何将变量传递给versionGradle Exec 任务并在下面的“echo”语句中引用它?

(我的 TeamCity 构建代理是 Linux)

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

4

2 回答 2

3

尝试将echo命令替换为

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

Confluence还有一个文档页面

于 2017-10-11T06:34:31.613 回答
0

从 TeamCity Professional 2017.2(内部版本 50574)原始版本开始

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

又开始工作了。

于 2018-01-22T06:39:20.140 回答