我正在VSTS上为一个桌面应用程序构建CI,
在版本.sln中,需要其他项目git repo中的一些git子模块。
请提出实现相同目标的方法。
构建解决方案URL:https://xxxxxxx.visualstudio.com/_git/test1
子模块网址:https://xxxxxxx.visualstudio.com/_git/test2
答案 0 :(得分:0)
答案 1 :(得分:0)
让我们说test1中的代码需要test2中的代码才能发布。因此,您可以通过转到命令行并键入以下命令来克隆repo1:
git clone https://{projectname}.visualstudio.com/_git/test1
太好了。这样就降低了test1的代码。
接下来,创建一个从Repo1到test2的子模块引用。
git submodule add https://{projectname}.visualstudio.com/_git/test2
您现在已经从test2的代码获得了test1根目录之外的文件夹中的代码。您还将获得一个名为“ .gitmodules”的新文件。该.gitmodules
文件包含从test1到test2的映射,该文件应与您所做的任何其他更改一起添加,提交和推送到test1。
至此,您已经将本地工作站的内容与子模块一起使用。接下来,让我们开始自动构建。
要使其与TFS Build vNext一起使用,实际上只需要一个复选框即可。在网络浏览器中,转到构建定义,然后单击“编辑”以打开构建编辑器。点击 Repository 标签以查看此构建定义的git repo设置。在列表底部,您会看到一个复选框选项,其中显示“ Checkout submodules”。检查并点击保存。
就是这样。当您的构建运行时,Git检出步骤将遵循您在.gitmodules文件中定义的子模块,并将所有这些代码放在磁盘上。之后,您可以使用第二个存储库中的代码进行任何操作。