我有一个巨大的代码库,我通过Sonar进行分析。我在CI构建过程中集成了Sonar分析,当前结构如下所示:
---Prod build---
-ProjectKey: abc-Prod
-ProjectVersion: 2.0
-ProjectName:abc
现在,我还在所有功能分支上运行夜间构建过程(我不希望将其更改为预览分析,并希望在所有这些上都有完整的声纳)。这个夜间分支分析看起来像这样:
---Feature1---
-ProjectKey: abc-Feature1
-ProjectVersion: 2.0.1
-ProjectName:abc
--Feature2---
-ProjectKey: abc-Feature2
-ProjectVersion: 2.0.2
-ProjectName:abc
我的问题是:在这样的结构中,我无法在Prod构建和Feature构建之间执行差异分析。我知道有"比较"比较具有不同键的项目的选项,但这对我的情况来说还不够,因为我们希望看到新功能中添加的确切新问题而不是prod构建。
我是否可以对此进行重组,使用与Prod构建相同的代码库来针对功能构建进行差异分析?
注意:我不能使用相同的项目密钥,因为我有一些仪表板,shuold始终能够对prod构建以及每个功能构建进行最新分析,并覆盖同一项目密钥的版本号更新结果无处不在的最后分析结果。
任何指针?谢谢!
答案 0 :(得分:1)
我遇到同样的问题,我打算尝试使用声纳的API: 首先,将分支名称和提交ID设置为“sonar.projectVersion”。然后你可以使用API:projects / index?search =& versions = true来获取所有版本。
其次:为声纳设置差分视图parma。如果您可以在最后一步的结果中找到分支名称,请设置差异视图parma,如下所示:
<property name="sonar.timemachine.period1" value="latest version of current branch" />
<property name="sonar.timemachine.period4" value="latest version of current branch" />
<property name="sonar.timemachine.period5" value="latest version of current branch" />;
否则你应该将项目比较设置为父分支,设置差异视图parma如下:
<property name="sonar.timemachine.period1" value="parent branch.commit id" />
<property name="sonar.timemachine.period4" value="parent branch.commit id" />
<property name="sonar.timemachine.period5" value="parent branch.commit id" />
如何查找父分支:请参阅this,
如何获取最新的提交ID。见How to tell which commit a tag points to in Git?