Teamcity不会将项目提示参数传播到构建配置vcs结帐规则

时间:2015-08-06 14:08:54

标签: teamcity

我在teamcity中有一个具有多个构建配置的“Release”项目。

这些BC以这种方式相互依赖。

PreDotNET BC -> DotNET BC -- 
                           |
                           ↓
GruntJSWebFrontend BC --------> Deploy BC
                           ↑
                           |
DelphiMake BC --------------

我有两个VCS根,一个用于JS的git,一个用于.NET的SVN。

当用户触发“部署BC”时,我想要求用户提示选择他想要构建的版本。这是简单的部分。我在项目中配置一个参数(尝试过system.VERSION和env.VERSION)作为提示,当任何人用run命令触发构建时,会询问用户他想要构建哪个版本。

但现在我需要使用此参数来检出两个VCS根目录中的右分支。但无论我做什么,我是否在VCS根目录中提供根路径并尝试通过签出规则选择分支,或者如果我将%system/env.VERSION%参数添加到VCS根路径的路径中,则提示中的选定值不会没有通过结账流程。

例如,如果我指定svn://server/blah/Release/%system.VERSION%/something结帐时的时间参数为空,则会尝试检出svn://server/blah/Release//something

令人讨厌的事情是......如果我将参数更改为一个不提示的参数并设置一个固定的值,那么这个东西就会被传递就好了。

任何提示?建议?

1 个答案:

答案 0 :(得分:0)

我在这里遇到了类似的问题:

Parameterized Checkout Rules in Teamcity discards parameter when using svn+ssh

我从未找到根本原因,但我确实找到了解决方法。

诀窍似乎是您将参数从VCS结帐规则中移出,并移入根本身。

创建一个新的根,在这种情况下:

svn://server/blah/Release/%system.VERSION%/

然后添加结帐规则

+:something => .

关于在根目录中进行参数解析而不是规则的问题导致问题得到解决。这是一个混乱的解决方法,但似乎有效。

希望有所帮助。