在TeamCity构建服务器上下载GitHub仓库的部分内容

15

我有一个包含多个.NET项目的GitHub存储库。我的TeamCity目前会下载所有代码,但只构建我需要的几个项目。是否有办法让它只下载存储库的一部分呢?

3个回答

21

您只需要设置一次 VCS 根,不需要为每个项目创建一个。

然后,对于给定的项目,您需要在管理页面中编辑检出规则。

  1. 转到 {TEAMCITY_URL}/admin/editBuildTypeVcsRoots.html?id=buildType:bt{PROJECT_ID}
  2. 单击“编辑检出规则(0)”链接
  3. 添加以下两个规则:
    -:.
    +:path/to/your/project/in/github
    

这样,您的项目配置将仅检出您的 github 存储库的相关部分。

您可以在Teamcity 文档中了解有关检出规则的更多详情。


2
代理端的结账不支持Git的子文件夹结账。http://confluence.jetbrains.com/display/TCD8/Git+(JetBrains)#Git%28JetBrains%29-Limitations - Sharique Abdullah
JetBrains官方文档显示,从10.0版本开始,他们已经支持此功能。 - Jacob Ewald

8

补充一下 Sébastien Saunier 上面所说的:

如果你希望 Github 中的子文件夹成为构建文件夹的根目录,那么你必须添加 =>。

例如:

-:.
+:subfolder=>.

希望这可以帮助你,Guy。

1
代理端的结账不支持Git的子文件夹结账。http://confluence.jetbrains.com/display/TCD8/Git+(JetBrains)#Git%28JetBrains%29-Limitations - Sharique Abdullah

-2

创建一个单独的存储库,其中只包含您需要编译并从中提取的项目。

除此之外,没有其他选择。TC将始终提取整个VCS根目录。


谢谢Stere,但是我该如何让GitHub将更改从原始存储库推送到副本? - me_
鉴于Sebastien的回答,我在此撤回我的答案。我似乎不知道检出规则的方法。我太匆忙地写下了一个答案,没有好好思考,我对自己的行为感到非常羞愧。这种情况不会再发生的 :-) - Steve Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接