我们正在尝试为发布标记定义TeamCity项目。当我们准备发布时,我们使用包含版本号的标签标记trunk。我们希望基于此标记检查构建过程,并在构建完成时将文件移动到名称也基于版本号的文件夹中。
我们只对拥有“最新版本”项目感兴趣,因此每次我们迁移到新版本时,我们都会使用新版本号重新配置现有的TC项目。
我遇到的问题是参数化VCS根URL(SVN)。我知道如何为构建过程中可以使用的构建设置变量,我们可以使用它来配置我们将文件移动到的文件夹。但是,我似乎无法找到一种方法来创建一个我们可以在SVN网址中引用的变量。
有没有办法从变量派生VCS网址?是否可以在VCS根目录和项目配置之间共享一个变量?
答案 0 :(得分:15)
从6.5版开始,TeamCity允许在VCS设置中使用参数:Parameterized Version Control System roots
答案 1 :(得分:3)
我不认为Team City支持这一点,就我在尝试时发现的情况而言,你不能在VCS设置中使用变量。我解决这个问题的方法是我有一个定义根VCS源的父模板,在我的情况下是SVN,每个构建配置都是基于这个模板构建的,然后你可以在你正在使用的VSC名称的右边定义结账规则对于“版本控制设置”选项卡上的给定构建配置,并在那里使用变量。所以我可以让所有构建配置共享公共SVN根并从那里定义细节。您可以将此变量设置为每个构建配置的静态固定设置,方法是将其设置为“属性和环境变量”屏幕中的配置变量,或者使其在同一屏幕中作为用户参数进行特定运行,但作为系统或环境变量。希望这会有所帮助。
答案 2 :(得分:0)
我不确定我完全明白你的要求,所以我会尽力回答这一点:
问:“我们希望构建过程基于此标记进行结帐,并在构建完成后,将文件移动到名称也基于版本号的文件夹中。”
答:如果您尝试动态更改vcs root,那么我不相信这是可能的。
问:“我遇到的问题是参数化VCS根URL(SVN)”答:以下是一些可能有用的变量:
%dep.btXX.vcsroot。{svn_branch} .client-mapping% - 这将显示vcs根视图的内容。您只需要设置正确的项目代码。 %dep.btXX.env.BUILD_VCS_NUMBER% - 附加到构建配置的第一个VCS根的VCS版本号。
我希望这会有所帮助..但听起来你的设置过于复杂。如果你为我做了一些步骤,我可能会给你一个更好的答案。