From c125f45eda6bda9dc96932b831566a18dac6aec0 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 11 Aug 2016 03:15:12 -0800 Subject: [PATCH] Fix task dependencies. --- .../com/beust/kobalt/internal/BaseProjectRunner.kt | 11 ++++++++--- .../com/beust/kobalt/internal/TaskManagerTest.kt | 9 ++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/BaseProjectRunner.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/BaseProjectRunner.kt index 4efadc8b..8624a434 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/BaseProjectRunner.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/BaseProjectRunner.kt @@ -148,12 +148,17 @@ abstract class BaseProjectRunner { // runBefore and runAfter (task ordering) are only considered for explicit tasks (tasks that were // explicitly requested by the user) // - passedTasks.map { it.taskName }.let { taskNames -> + val passedTaskNames = passedTasks.map { it.taskName }.toSet() + passedTaskNames.let { taskNames -> runBefore[taskName].forEach { from -> - addEdge(result, from, taskName, newToProcess, "runBefore") + if (passedTaskNames.contains(from)) { + addEdge(result, from, taskName, newToProcess, "runBefore") + } } runAfter[taskName].forEach { to -> - addEdge(result, to, taskName, newToProcess, "runAfter") + if (passedTaskNames.contains(to)) { + addEdge(result, to, taskName, newToProcess, "runAfter") + } } } seen.add(taskName) diff --git a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt index 1b5bc41a..bb28018a 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt @@ -92,6 +92,13 @@ class TaskManagerTest : BaseTest() { fun exampleInTheDocTest() { // KobaltLogger.LOG_LEVEL = 3 + runTasks(listOf("clean"), + runAfter = TreeMultimap.create().apply { + put("clean", "compile") + }).let { runTasks -> + assertThat(runTasks).isEqualTo(listOf("clean")) + } + runTasks(listOf("assemble"), dependsOn = TreeMultimap.create().apply { put("assemble", "compile") @@ -138,7 +145,7 @@ class TaskManagerTest : BaseTest() { runBefore = TreeMultimap.create().apply { put("compile", "example") }).let { runTasks -> - assertThat(runTasks).isEqualTo(listOf("clean", "compile", "example")) + assertThat(runTasks).isEqualTo(listOf("clean", "compile")) } runTasks(listOf("compile", "example"),