现状:
我们的应用程序使用Webforms或MVC在Asp.Net中,我们有前端和后端团队。前端团队在html,css和js(AngularJs)上工作,后端团队将前端团队的输出与asp.net应用程序集成。
代码分为前端和后端存储库,每个团队独立工作(仅适用于工作范围,而不是没有通信)。
我们为后端应用程序设置了CI设置,它具有正常的功能:从git中提取,构建,编译和打包,然后部署。
对于前端解决方案,正在使用grunt(或gulp),因此还可以编译和构建css和html代码。
当前流程是前端团队在其本地计算机中遵守代码并发送到后端团队以覆盖asp.net解决方案中的js,css和html,然后检查后端git,然后进入CI流程。
问题在这种情况下,我们无法分辨我们在后端git存储库中的前端代码版本,因为前端代码是基于开发人员构建的。本地机器具有前端包管理(动态版本)的性质,当不同的开发人员编译代码时,输出会有所不同。在签入GIT时很难说明这些变化。
我们想要做什么现在是将构建/编译前端代码的部分移动到CI过程中,输出应该是版本化的,然后集成到CI过程的后端解决方案,所以我们我们总是知道我们在后端有什么版本的前端代码以及git从中提交的内容。
但是,由于我们希望特定的后端部署版本可以匹配git提交,如果前端包在不同的CI进程中生成并且仅作为后端部署的一部分推送,则前端更改不会反映在后端git存储库中。 / p>
此外,它还会导致后端本地开发出现问题,因为CI中的过程必须在本地重复。
我的问题是,这通常是如何处理的,因此前端和后端开发人员有一个平滑的过期,并且测试人员也更容易知道部署了哪个版本的前端和后端代码?