Jam*_*aix 5 git deployment continuous-integration continuous-deployment
我有一个非常大的存储库,其中包含许多应用程序/服务。例如,有一些用C#编写的Windows服务,一个JS / HTML Web客户端,节点应用程序和其他应用程序。
我想以编程方式找到基于前一个标记的diff标记新版本时需要部署其中的哪个。
对于某些应用程序,这就像检查存储库的子文件夹中的更改一样简单。例如,Web客户端全部在中src/clients/web。但是C#服务使用一些共享的C#库,这些库不在这些服务的文件夹中。这些依赖关系会随着时间而变化,因此我只能真正依赖csproj文件中的引用。
是否有针对此问题的一般(或部分)解决方案?
有一个强力解决方案,即构建两次,寻找更改的文件时间戳:
git checkout <old tag>
msbuild ...
record_all_final_outputs_timestamps > old_timestamps.txt
git checkout <new tag>
msbuild ...
record_all_final_outputs_timestamps > new_timestamps.txt
diff old_timestamps.txt new_timestamps.txt
Run Code Online (Sandbox Code Playgroud)
差异将向您显示增量构建后实际更改的所有库。C# 的构建速度相对较快,这可能使此方法可以接受。
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |