我有一个TeamCity构建配置,直到最近一直运行良好。突然间,队列中存在一个构建,表示它与任何代理都不兼容。给出的理由是:
隐式要求:参数:BuildFormatSpecification中定义的teamcity.build.branch
我的BuildFormatSpecification参数因此被定义:
%MajorVersion%%MinorVersion%%PatchVersion% - 。%teamcity.build.branch%
反过来,它在Build Number Format字段中与构建计数器一起使用,如下所示:
%BuildFormatSpecification%。%%sharedBuildNumber.id4
这个想法是构建号出现像“1.0.0-develop.22”并包含正在构建的Git分支。这遵循语义版本控制的规则。这个方案对我来说在很多项目中都有用,但突然之间这个版本被卡住了,我无法弄清楚原因。
有什么想法吗?
答案 0 :(得分:50)
teamcity.build.branch
是predefined build parameter,但在配置branch specification时仅定义。因此,要解决您的问题,请确保您的构建步骤配置了VCS根目录并添加例如+:refs/heads/(master)
作为您的分支规范。
来自TeamCity关于Agent Requirements的文档和隐含要求:
对未知参数的任何引用(%-signs中的名称)都被视为"隐含要求"。这意味着构建将仅在提供名为的参数的代理上运行。
否则,通过在构建配置或项目级别定义参数,该参数应该可用于构建配置。