使用来自不同项目存储库的多个git子模块在VSTS上创建CI

时间:2018-08-24 10:19:00

标签: git azure-devops desktop-application azure-pipelines azure-pipelines-build-task

我正在VSTS上为一个桌面应用程序构建CI,

在版本.sln中,需要其他项目git repo中的一些git子模块。

请提出实现相同目标的方法。

构建解决方案URL:https://xxxxxxx.visualstudio.com/_git/test1

子模块网址:https://xxxxxxx.visualstudio.com/_git/test2

2 个答案:

答案 0 :(得分:0)

在版本enter image description here的“获取源”步骤中启用“签出子模块”。

答案 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”。检查并点击保存。

enter image description here

就是这样。当您的构建运行时,Git检出步骤将遵循您在.gitmodules文件中定义的子模块,并将所有这些代码放在磁盘上。之后,您可以使用第二个存储库中的代码进行任何操作。