假设我在TeamCity中有两个"项目",它们是两个网站,每个网站都使用不在网站的svn路径内的共享库.这是svn结构,使其更清晰:
网站A:svn:// root/web/websitea(使用共享库a)
网站B:svn:// root/web/websiteb(使用共享库b)
共享库A:svn:// root/shared/liba
共享库B:svn:// root/shared/libb
我如何为网站设置团队城市项目?现在我指向svn:// root,但即使网站b或共享库b被更改,也会触发构建,这是不对的.我真正需要的是只有在svn:// root/web/websitea或svn:// root/shared/liba中发生更改时触发构建的方法.
我尝试在同一项目中设置两个vcs根,指向上面的两个svn路径,但是似乎没有办法为每个vcs根设置工作目录.出于这个原因,它最终只是将两个svn路径的内容直接复制到我的构建目录的根目录中,而不是将它们放在适当的位置(C:\ Build\Web\WebsiteA&C:\ Build\Shared\LibA) ).
Eri*_*ric 13
TeamCity的结账规则功能能够支持您所描述的设置.我的团队使用它来做类似于你想要做的事情.
首先,设置一个SVN Root.这个根的URL将是这样的:
svn://root/
Run Code Online (Sandbox Code Playgroud)
然后设置以下结帐规则.
对于项目A:
+:web/websitea=>/web/websitea
+:shared/liba=>/shared/liba
Run Code Online (Sandbox Code Playgroud)
对于项目B:
+:web/websiteb=>/web/websiteb
+:shared/libb=>/shared/libb
Run Code Online (Sandbox Code Playgroud)
关于结帐规则的TeamCity文档并不完全清楚这一点,但只有您所包含的特定路径才会用于触发构建.这应该满足你的需要,只有网站和liba触发其构建的更改(和B相同).
除了Eric提到的内容之外,如果您需要检出整个源根,但只触发基于特定路径的构建,则可以在Build Triggering部分编辑VCS Trigger规则,如下所示:
+:web/websitea
+:share/liba
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |