aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala')
-rw-r--r--src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala99
1 files changed, 54 insertions, 45 deletions
diff --git a/src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala b/src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala
index a5a16bc..4a6b4be 100644
--- a/src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala
+++ b/src/main/scala/xyz.driver.sbt/IntegrationTestPackaging.scala
@@ -11,6 +11,7 @@ import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.Docker
import com.typesafe.sbt.packager.universal._
import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport._
import sbt._
+import sbt.plugins._
import sbt.Keys._
object IntegrationTestPackaging extends AutoPlugin {
@@ -19,7 +20,7 @@ object IntegrationTestPackaging extends AutoPlugin {
override def trigger = AllRequirements
object autoImport {
- val IntegrationTest = config("it") extend (Test) // make test classes available
+ lazy val IntegrationTest = config("it") extend (Test) // make test classes available
}
import autoImport._
@@ -31,56 +32,64 @@ object IntegrationTestPackaging extends AutoPlugin {
}
}
- override def projectSettings = Seq(
- mappings in Universal ++= {
- val cp: Seq[(File, String)] = (dependencyClasspath in IntegrationTest).value
- .map(_.data.toPath)
- .flatMap(list)
- .map {
- case (file, location) =>
- file.toFile -> ("lib-it/" + location)
- }
+ private def configurationSettings =
+ inConfig(IntegrationTest)(Defaults.configSettings) ++
+ inConfig(IntegrationTest)(Defaults.testSettings) ++ Seq(
+ ivyConfigurations := overrideConfigs(IntegrationTest)(ivyConfigurations.value)
+ )
- val tests: Seq[(File, String)] = list((packageBin in IntegrationTest).value.toPath)
- .map {
- case (file, location) =>
- file.toFile -> ("lib-it/" + location)
- }
+ override def projectSettings =
+ configurationSettings ++
+ Seq(
+ mappings in Universal ++= {
+ val cp: Seq[(File, String)] = (dependencyClasspath in IntegrationTest).value
+ .map(_.data.toPath)
+ .flatMap(list)
+ .map {
+ case (file, location) =>
+ file.toFile -> ("lib-it/" + location)
+ }
- val script = {
- def libs(mappings: Seq[(File, String)]): String =
- mappings
+ val tests: Seq[(File, String)] = list((packageBin in IntegrationTest).value.toPath)
.map {
- case (_, location) =>
- s"$$bin_dir/../$location"
+ case (file, location) =>
+ file.toFile -> ("lib-it/" + location)
}
- .mkString(":")
- s"""|#!/bin/bash
- |bin_dir="$$(dirname "$$(readlink -f "$$0")")"
- |exec java \\
- | -cp "${libs(tests ++ cp)}" \\
- | org.scalatest.tools.Runner \\
- | -o \\
- | -R "${libs(tests)}"
- |""".stripMargin
- }
- val scriptFile = (resourceManaged in IntegrationTest).value / "runit"
- IO.write(scriptFile, script)
- scriptFile.setExecutable(true)
+ val script = {
+ def libs(mappings: Seq[(File, String)]): String =
+ mappings
+ .map {
+ case (_, location) =>
+ s"$$bin_dir/../$location"
+ }
+ .mkString(":")
+ s"""|#!/bin/bash
+ |bin_dir="$$(dirname "$$(readlink -f "$$0")")"
+ |exec java \\
+ | -cp "${libs(tests ++ cp)}" \\
+ | org.scalatest.tools.Runner \\
+ | -o \\
+ | -R "${libs(tests)}"
+ |""".stripMargin
+ }
+
+ val scriptFile = (resourceManaged in IntegrationTest).value / "runit"
+ IO.write(scriptFile, script)
+ scriptFile.setExecutable(true)
- cp ++ tests ++ Seq(scriptFile -> s"bin/${normalizedName.value}-it")
- },
- dockerCommands in Docker := {
- (dockerCommands in Docker).value ++ Seq(
- ExecCmd("RUN", "mkdir", "-p", "/test"),
- ExecCmd("RUN",
- "ln",
- "-s",
- s"${(defaultLinuxInstallLocation in Docker).value}/bin/${normalizedName.value}-it",
- "/test/run_integration_test.sh")
+ cp ++ tests ++ Seq(scriptFile -> s"bin/${normalizedName.value}-it")
+ },
+ dockerCommands in Docker := {
+ (dockerCommands in Docker).value ++ Seq(
+ ExecCmd("RUN", "mkdir", "-p", "/test"),
+ ExecCmd("RUN",
+ "ln",
+ "-s",
+ s"${(defaultLinuxInstallLocation in Docker).value}/bin/${normalizedName.value}-it",
+ "/test/run_integration_test.sh")
+ )
+ }
)
- }
- )
}