in plugin-dotnet-server/src/main/kotlin/jetbrains/buildServer/dotCover/DotCoverToolUsageProvider.kt [15:52]
override fun getRequiredTools(build: SRunningBuild): List<ToolVersion> {
val bp = build.buildPromotion as? BuildPromotionEx ?: return emptyList()
val buildPromotion: BuildPromotionEx = bp
val result: MutableList<ToolVersion> = ArrayList()
if (isUsedBundledToolWithNotDefaultParams(buildPromotion)) {
val bundledTool = _serverToolManager.findInstalledTool(CoverageConstants.DOTCOVER_BUNDLED_TOOL_ID)
if (bundledTool != null) {
result.add(bundledTool)
}
}
for (runnerDescriptor in buildPromotion.getBuildSettings().getAllBuildRunners().getEnabledBuildRunners()) {
//dot cover tool is required only if dot cover is enabled
val coverageType = runnerDescriptor.parameters.getOrDefault(CoverageConstants.PARAM_TYPE, "")
if (coverageType.isEmpty()) continue
if (CoverageConstants.PARAM_DOTCOVER != coverageType) continue
val selectedTool = runnerDescriptor.parameters.getOrDefault(CoverageConstants.PARAM_DOTCOVER_HOME, "")
if (selectedTool.isEmpty() || ToolVersionReference.isDefaultToolReference(selectedTool)) {
val defaultTool = _defaultToolFinder.getDefaultTool(_toolType, build)
if (defaultTool != null) {
result.add(defaultTool)
}
continue
}
val toolId = ToolVersionReference.resolveToolId(selectedTool) ?: continue
val installedTool = _serverToolManager.findInstalledTool(toolId)
if (installedTool != null) {
result.add(installedTool)
}
}
return result
}