使用svn + ssh时,Teamcity中的参数化Checkout规则会丢弃参数

时间:2015-11-03 13:04:55

标签: svn ssh configuration teamcity

在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的变量...

感谢你们的任何帮助或想法。

谢谢!

1 个答案:

答案 0 :(得分:1)

我找到了一种解决方法,虽然它并不完美,但希望它可以帮助其他人解决这个问题。

我没有使用带参数化VCS规则的公共VCS根,而是为标记创建了一个单独的VCS根目录。

使用以下参数指定根URL:

svn+ssh://my_user_id@svn_ip/svn/repo/tags/%RELEASE_TAG%

然后我将VCS规则设置为:

+: deployment_module => .

这很有效,并允许结帐成功完成。将参数移出规则并进入VCS根目录似乎是关键。有点乱,但它确实有效。

相关问题