.net - 推送更改后如何构建所有项目
问题描述
在我尝试在 Jenkins 中为我的项目实施 CI 时,我遇到了这个问题,这很可能与我组织这些项目的方式有关。这可以简化为以下几点:
- 我有 2 个解决方案:
LegacyApp.sln
和ModernApp.sln
- 这些解决方案都包含一组经常修改的项目。这些是共享项目。
- 该
LegacyApp
解决方案还包含旧版控制台应用程序项目。这不再开发了。 - 该
ModernApp
解决方案还包含 GUI 应用程序项目(例如 WPF)。这正在开发中,并且经常与共享项目一起更改。
(注意:现实生活中大约有 20 个共享项目,每个解决方案包含 10-15 个独特的项目)
我ModernApp.sln
用来进行我需要的更改。有时这些更改会中断LegacyApp.sln
,但直到每晚构建失败时我才意识到这一点(因为只有每晚构建句柄LegacyApp.sln
)。
问题是:处理此问题的最佳方法是什么,以便在我推送更改后 CI 构建失败?
显然,我必须在 CI 构建中包含 LegacyApp 项目,但是如何?我能想到的选项并不完美:
- 继续使用 2 个解决方案并配置 CI 构建以按顺序构建它们。当我添加一个新的共享项目时,这不会扩展,因为我必须更新这两个解决方案。
- 将这 2 个解决方案合并为一个
AllApps.sln
,包括共享项目、来自 的独特项目LegacyApp
和来自 的独特项目ModernApp
。缺点是遗留应用程序项目一直加载到 IDE 中(而不是使用ModernApp.sln
不包含它们的项目)。 - 继续使用这 2 个解决方案,但让构建在构建服务器上的构建时“合并”它们,以便它自动创建上述
AllApps.sln
(或等效的东西)作为 CI 构建使用的临时文件。我不确定这是否可能。
想法?
解决方案
是否可以存储/维护某种依赖配置,以便每次合并代码时只构建依赖项目。
推荐阅读
- python - Python 更新 YAML 而不更改格式
- amazon-web-services - 某些客户端无法访问最快的 cloudpoint 服务器
- java - Spring Security - 更改 LoginUrlAuthenticationEntryPoint 重定向策略
- python - 找不到python安装
- reactjs - 组件在父逻辑完成之前渲染 props.children
- react-native - (在 '(0,r(d[9]).useState)(null)' 中,'(0,r(d[9]).useState)' 未定义)React Native
- pandas - 带有 isin 的 Pandas groupby 连续组
- angular - Angular - 错误 TS1146:Material Stepper 中预期的声明
- ssl - HiveMQ-Cloud 获取 MQTT 的 ssl 指纹/证书
- postgresql - Spring boot mvc 1个简单查询计数的长显示时间