Skip to content

Commit

Permalink
add ImpactMetrics ciStep (#654)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsvoronin committed Nov 27, 2020
1 parent 357ec45 commit 8cf3587
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.avito.ci.steps.DeployStep
import com.avito.ci.steps.DetektCheck
import com.avito.ci.steps.FlakyReportStep
import com.avito.ci.steps.ImpactAnalysisAwareBuildStep
import com.avito.ci.steps.ImpactMetrics
import com.avito.ci.steps.LintCheck
import com.avito.ci.steps.MarkReportAsSourceForTMSStep
import com.avito.ci.steps.TestSummaryStep
Expand Down Expand Up @@ -42,6 +43,9 @@ open class BuildStepListExtension(
registerFactory(CompileUiTests::class.java) { name ->
CompileUiTests(buildStepListName, name)
}
registerFactory(ImpactMetrics::class.java) { name ->
ImpactMetrics(buildStepListName, name)
}
registerFactory(UnitTestCheck::class.java) { name ->
UnitTestCheck(buildStepListName, name)
}
Expand Down Expand Up @@ -111,6 +115,14 @@ open class BuildStepListExtension(
configureAndAdd("compileUiTests", action)
}

fun impactMetrics(closure: Closure<ImpactMetrics>) {
configureAndAdd("impactMetrics", closure)
}

fun impactMetrics(action: Action<ImpactMetrics>) {
configureAndAdd("impactMetrics", action)
}

fun unitTests(closure: Closure<UnitTestCheck>) {
configureAndAdd("unitTests", closure)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.avito.ci.steps

import com.avito.kotlin.dsl.isRoot
import com.avito.kotlin.dsl.namedOrNull
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.TaskProvider

class ImpactMetrics(context: String, name: String) : BuildStep(context, name) {

override fun registerTask(project: Project, rootTask: TaskProvider<out Task>) {
require(project.isRoot()) { failMessage("should be configured for root project") }

val impactMetricsTask = requireNotNull(project.tasks.namedOrNull("impactMetrics")) {
failMessage("impactMetrics task not registered for root project")
}

rootTask.configure { it.dependsOn(impactMetricsTask) }
}

private fun failMessage(reason: String): String = "Failed to setup ImpactMetrics: $reason"
}

0 comments on commit 8cf3587

Please sign in to comment.