Skip to content

Commit

Permalink
Fix issue #40. Stop caching the working dir, it does not make sense.
Browse files Browse the repository at this point in the history
  • Loading branch information
bsautel committed Oct 7, 2019
1 parent 4dd5831 commit 1b842f6
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.moowork.gradle.node.variant.Variant
import org.gradle.api.Project
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.Optional
import org.gradle.process.ExecResult

abstract class ExecRunner
Expand All @@ -32,8 +31,7 @@ abstract class ExecRunner
this.project = project
}

@Input
@Optional
@Internal
File getWorkingDir()
{
return workingDir
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,17 @@ class NpmTask_integTest
result7.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":npmSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":npmInstall").outcome == TaskOutcome.UP_TO_DATE
result7.task(":pwd").outcome == TaskOutcome.SUCCESS
result7.task(":pwd").outcome == TaskOutcome.UP_TO_DATE

when:
def result8 = build(":pwd", "-DcustomWorkingDir=true", "--rerun-tasks")

then:
result8.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result8.task(":npmSetup").outcome == TaskOutcome.SUCCESS
result8.task(":npmInstall").outcome == TaskOutcome.SUCCESS
result8.task(":pwd").outcome == TaskOutcome.SUCCESS
def expectedWorkingDirectory = "${projectDir}${File.separator}build${File.separator}customWorkingDirectory"
result7.output.contains("Working directory is '${expectedWorkingDirectory}'")
result8.output.contains("Working directory is '${expectedWorkingDirectory}'")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,17 @@ class NpxTask_integTest
result7.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":npmSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":npmInstall").outcome == TaskOutcome.UP_TO_DATE
result7.task(":pwd").outcome == TaskOutcome.SUCCESS
result7.task(":pwd").outcome == TaskOutcome.UP_TO_DATE

when:
def result8 = build(":pwd", "-DcustomWorkingDir=true", "--rerun-tasks")

then:
result8.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result8.task(":npmSetup").outcome == TaskOutcome.SUCCESS
result8.task(":npmInstall").outcome == TaskOutcome.SUCCESS
result8.task(":pwd").outcome == TaskOutcome.SUCCESS
def expectedWorkingDirectory = "${projectDir}${File.separator}build${File.separator}customWorkingDirectory"
result7.output.contains("Working directory is '${expectedWorkingDirectory}'")
result8.output.contains("Working directory is '${expectedWorkingDirectory}'")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -146,50 +146,57 @@ class NodeTask_integTest
result8.task(":env").outcome == TaskOutcome.SUCCESS

when:
def result9 = buildAndFail("env", "-DchangeWorkingDir=true")
def result9 = build("env", "-DchangeWorkingDir=true")

then:
result9.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result9.task(":env").outcome == TaskOutcome.FAILED
result9.output.contains("A problem occurred starting process")
result9.task(":env").outcome == TaskOutcome.UP_TO_DATE

when:
// Reset build arguments to ensure the next change is not up-to-date
def result10 = build("env")
def result10 = buildAndFail("env", "-DchangeWorkingDir=true", "--rerun-tasks")

then:
result10.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result10.task(":env").outcome == TaskOutcome.UP_TO_DATE
result10.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result10.task(":env").outcome == TaskOutcome.FAILED
result10.output.contains("A problem occurred starting process")

when:
def result11 = build("env", "-DignoreExitValue=true")
// Reset build arguments to ensure the next change is not up-to-date
def result11 = build("env")

then:
result11.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result11.task(":env").outcome == TaskOutcome.SUCCESS
result11.output.contains("No custom environment")
result11.task(":env").outcome == TaskOutcome.UP_TO_DATE

when:
def result12 = build("env", "-Dfail=true", "-DignoreExitValue=true")
def result12 = build("env", "-DignoreExitValue=true")

then:
result12.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result12.task(":env").outcome == TaskOutcome.SUCCESS
result12.output.contains("I had to fail")
result12.output.contains("No custom environment")

when:
def result13 = build("env", "-Dfail=true", "-DignoreExitValue=true")

then:
result13.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result13.task(":env").outcome == TaskOutcome.UP_TO_DATE
result13.task(":env").outcome == TaskOutcome.SUCCESS
result13.output.contains("I had to fail")

when:
def result14 = buildAndFail("env", "-Dfail=true")
def result14 = build("env", "-Dfail=true", "-DignoreExitValue=true")

then:
result14.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result14.task(":env").outcome == TaskOutcome.FAILED
result14.output.contains("I had to fail")
result14.task(":env").outcome == TaskOutcome.UP_TO_DATE

when:
def result15 = buildAndFail("env", "-Dfail=true")

then:
result15.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result15.task(":env").outcome == TaskOutcome.FAILED
result15.output.contains("I had to fail")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,17 @@ class YarnTask_integTest
result7.task(":nodeSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":yarnSetup").outcome == TaskOutcome.UP_TO_DATE
result7.task(":yarn").outcome == TaskOutcome.UP_TO_DATE
result7.task(":pwd").outcome == TaskOutcome.SUCCESS
result7.task(":pwd").outcome == TaskOutcome.UP_TO_DATE

when:
def result8 = build(":pwd", "-DcustomWorkingDir=true", "--rerun-tasks")

then:
result8.task(":nodeSetup").outcome == TaskOutcome.SUCCESS
result8.task(":yarnSetup").outcome == TaskOutcome.SUCCESS
result8.task(":yarn").outcome == TaskOutcome.SUCCESS
result8.task(":pwd").outcome == TaskOutcome.SUCCESS
def expectedWorkingDirectory = "${projectDir}${File.separator}build${File.separator}customWorkingDirectory"
result7.output.contains("Working directory is '${expectedWorkingDirectory}'")
result8.output.contains("Working directory is '${expectedWorkingDirectory}'")
}
}

0 comments on commit 1b842f6

Please sign in to comment.