使用多个 GIT 存储库构建 TFS

TFS build with multiple GIT repositories

看起来 TFS 每次构建只支持一个存储库。一旦我需要使用一些单独存储的第 3 方库,这对我来说是不够的。

我可以为此使用 GIT 子模块,但在这种情况下,构建将不会与提交和工作项相关联,因为它会忽略来自子模块的提交。此外,子模块的更改不会触发构建。

是否可以使用插件、扩展或类似的东西来定义具有多个存储库的构建?

不,这目前是不可能的。相反,建议将您的第 3 方库构建并存储在包管理功能中(作为 NuGet 或 npm 包)并依赖于包而不是源。不过,这不会将工作项与第 3 方依赖项相关联。

当然,如果您确实需要,可以从 powershell 或批处理脚本调用 git.exe 并获取其他存储库。不过,这也不会关联工作项。

如@jessehouwing 所述,默认情况下无法构建多个 GIT 存储库。 @jessehouwing 和@Giulio Vian 在这里提供了一些解决方法:

  1. 使用 Nuget 或其他包管理器来存储第 3 方库,并添加 NuGet 还原任务来还原库。

  2. 添加命令行任务以调用 git.exe 以拉取额外的存储库。

  3. 创建两个构建定义,在第二个构建定义中,您需要添加一个powershell任务。在 powershell 脚本中,您可以使用 TFS REST API 对第一个构建定义进行排队。

但其中 none 会将两个存储库中的提交和工作项与一个构建相关联。我发现下面的网站已经有一个UserVoice,你可以投票:

https://developercommunity.visualstudio.com/idea/365522/allow-tfs-build-to-depend-on-multiple-repositories.html