我在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
令人讨厌的事情是......如果我将参数更改为一个不提示的参数并设置一个固定的值,那么这个东西就会被传递就好了。
任何提示?建议?
答案 0 :(得分:0)
我在这里遇到了类似的问题:
Parameterized Checkout Rules in Teamcity discards parameter when using svn+ssh
我从未找到根本原因,但我确实找到了解决方法。
诀窍似乎是您将参数从VCS结帐规则中移出,并移入根本身。
创建一个新的根,在这种情况下:
svn://server/blah/Release/%system.VERSION%/
然后添加结帐规则
+:something => .
关于在根目录中进行参数解析而不是规则的问题导致问题得到解决。这是一个混乱的解决方法,但似乎有效。
希望有所帮助。