在Teamcity中设置参数化构建时出现SVN + SSH问题。我的SVN布局是
VCSRoot << VCS Root configured to point here
trunk
deployment_module
tags
tag_name1
deployment_module
tag_name2
deployment_module
... etc
我有一个VCS root配置到上面指定的root。我的主干构建工作正常,并配置了以下结帐规则:
+:trunk/deployment_module => .
对于分支机构,我想设置一个带有参数的构建:%RELEASE_TAG%。然后,我可以使用该参数来修改结帐规则并签出标记的版本。瞧!一个构建配置,许多标记构建!
然而,它不起作用。
这是我对参数化标签构建的当前结帐规则:
+:tags/%RELEASE_TAG%/deployment_module => .
这会在TC启动构建时导致以下错误(例如我提供&#34; 1.5&#34;:
Failed to collect changes, error: Error collecting changes for VCS repository '"My_Repo" {instance id=12, parent internal id=1, parent id=My_Repo, description: "svn: svn+ssh://my_user_id@svn_ip/svn/repo/"}'
Checkout rule: tags/1.5/deployment_module=>tags/1.5/deployment_module
tags/deployment_module=>tags/deployment_module
Path is invalid: 'svn+ssh://my_user_id@svn_ip/svn/repo/tags/deployment_module'@321: none
我没有Teamcity专家,但似乎有两个结账规则正在运行,一个在另一个之上。一个包含并正确导入我的变量,然后丢弃它,并且那是用于访问SVN的变量...
感谢你们的任何帮助或想法。
谢谢!
答案 0 :(得分:1)
我找到了一种解决方法,虽然它并不完美,但希望它可以帮助其他人解决这个问题。
我没有使用带参数化VCS规则的公共VCS根,而是为标记创建了一个单独的VCS根目录。
使用以下参数指定根URL:
svn+ssh://my_user_id@svn_ip/svn/repo/tags/%RELEASE_TAG%
然后我将VCS规则设置为:
+: deployment_module => .
这很有效,并允许结帐成功完成。将参数移出规则并进入VCS根目录似乎是关键。有点乱,但它确实有效。