【发布时间】:2019-07-31 17:59:50
【问题描述】:
我被分配在我公司的一个项目中实施 CI/CD 流程(使用 TeamCity)。
重点是项目分布在不同的存储库中(一个用于框架,一个用于基础应用程序,两个用于项目特定问题)
如果我现在要组装这个项目,我应该首先克隆框架,然后克隆其他存储库并手动将它们移动到正确的文件夹中。
“最终形式”的项目具有类似于以下的文件夹结构:
BigProject/
├── Framework (Repository)/
│ ├── bin/
│ ├── obj/
│ ├── Application/
│ ├── BaseApplication (Repository)/
│ ├── Foo/
│ ├── Bar/
│ ├── Project-Specific-1 (Respository)/
│ ├── Project-Specific-2 (Respository)/
在 TeamCity 中,我为四个存储库设置了所有 VCS Roots,并编辑了 Checkout Rules 以使其正常运行。
例如,我将 BaseApplication 的 Checkout Rule 设置为如下所示:
+:.=>./Framework/Application/
据我了解,此命令应将 BaseApplication 存储库的所有内容复制到目录 ./Framework/Application/ 。
问题是当我运行构建时出现以下错误:
stderr: The 'https: //me@myvcs.com/xx/xx/BaseApplication.git' repository has a submodule in the 'xx' commit to the 'Project-Specific-1' path, but has not .gitmodules configuration in the root directory
exit code: 1
我不明白为什么会发生此错误。我在设置结帐规则时出错了吗? TeamCity 是否在进行必要的检查之前尝试构建项目?有人对我如何完成这项工作有任何建议吗?
注意,我不能为这个项目配置 .gitmodules,因为我认为 .gitmodules 应该在框架存储库中,并且该框架在其他项目中使用。
提前致谢!
【问题讨论】:
标签: git continuous-integration teamcity devops continuous-delivery