in pkg/degradation-detector/setting/unitTestsSettings.go [94:151]
func GenerateAllUnitTestsSettings(backendUrl string, client *http.Client) []detector.PerformanceSettings {
settings := make([]detector.PerformanceSettings, 0, 1000)
mainSettings := detector.PerformanceSettings{
Db: "perfUnitTests",
Table: "report",
BaseSettings: detector.BaseSettings{
Branch: "master",
Machine: "intellij-linux-%-hetzner-%",
Metric: "attempt.mean.ms",
},
}
tests, err := detector.FetchAllTests(backendUrl, client, mainSettings)
if err != nil {
slog.Error("error while getting tests", "error", err)
return settings
}
// Iterate over team configurations
for _, config := range teamConfigs {
teamSettings := generateProductTestsSettings(
tests,
mainSettings,
config,
)
settings = append(settings, teamSettings...)
}
// Collect all packages to exclude from default settings
allPackages := collectAllPackages(teamConfigs)
// Generate default settings (excluding specified packages)
defaultSlackSettings := detector.SlackSettings{
Channel: "ij-perf-unit-tests-alerts",
ProductLink: "perfUnit",
}
defaultTests := filterTests(tests, allPackages, false)
for _, test := range defaultTests {
settings = append(settings, detector.PerformanceSettings{
Project: test,
Db: mainSettings.Db,
Table: mainSettings.Table,
BaseSettings: detector.BaseSettings{
Branch: mainSettings.Branch,
Machine: mainSettings.Machine,
Metric: mainSettings.Metric,
SlackSettings: defaultSlackSettings,
AnalysisSettings: detector.AnalysisSettings{
MinimumSegmentLength: 30,
MedianDifferenceThreshold: 20,
EffectSizeThreshold: 2,
},
},
})
}
return settings
}