35

我有一个 TeamCity 构建配置,直到最近它一直运行良好。突然,有一个构建卡在队列中,说它与任何代理都不兼容。给出的理由是:

隐式要求:在参数:BuildFormatSpecification 中定义的 teamcity.build.branch

我的 BuildFormatSpecification 参数是这样定义的:

%MajorVersion%.%MinorVersion%.%PatchVersion%-%teamcity.build.branch%

这又在 Build Number Format 字段中与构建计数器一起使用,如下所示:

%BuildFormatSpecification%.%sharedBuildNumber.id4%

这个想法是内部版本号像“1.0.0-develop.22”一样出现,包括正在构建的 Git 分支。这遵循语义版本控制的规则。这个方案在很多项目中都对我有用,但是突然间这个构建被卡住了,我不知道为什么。

有任何想法吗?

4

1 回答 1

64

teamcity.build.branch预定义的构建参数,但仅在配置分支规范时才定义。因此,要解决您的问题,请确保您的构建步骤配置了 VCS 根目录并添加例如作为您的分支规范。+:refs/heads/(master)

来自 TeamCity 关于代理要求和隐含要求的文档:

对未知参数的任何引用(以 % 符号表示的名称)都被视为“隐式要求”。这意味着构建将仅在提供命名参数的代理上运行。

否则,应通过在构建配置或项目级别上定义该参数来使该参数可用于构建配置。

于 2015-01-07T22:09:14.743 回答