mirror of https://github.com/sbt/sbt.git
Add plugin cross-build override test
Cover an AutoPlugin that sets pluginCrossBuild / sbtVersion and a concrete sbt plugin that requires both that AutoPlugin and SbtPlugin. Also assert that a plain Scala 2.12 SbtPlugin project keeps the existing 1.5.8 default, and that an explicit value equal to the running sbt version is preserved.
This commit is contained in:
parent
5ed34be48c
commit
9d1a346390
|
|
@ -0,0 +1,38 @@
|
|||
lazy val check = taskKey[Unit]("Checks pluginCrossBuild / sbtVersion")
|
||||
|
||||
lazy val root = (project in file("."))
|
||||
.enablePlugins(ConcreteSbtPlugin)
|
||||
.settings(
|
||||
scalaVersion := "2.12.21",
|
||||
check := {
|
||||
val actual = (pluginCrossBuild / sbtVersion).value
|
||||
val expected = "1.12.12"
|
||||
assert(actual == expected, s"Expected pluginCrossBuild / sbtVersion to be $expected, got $actual")
|
||||
|
||||
val defaultActual = (defaultPlugin / pluginCrossBuild / sbtVersion).value
|
||||
val defaultExpected = "1.5.8"
|
||||
assert(
|
||||
defaultActual == defaultExpected,
|
||||
s"Expected default pluginCrossBuild / sbtVersion to be $defaultExpected, got $defaultActual"
|
||||
)
|
||||
|
||||
val sameAsRunningActual = (sameAsRunning / pluginCrossBuild / sbtVersion).value
|
||||
val sameAsRunningExpected = sbtVersion.value
|
||||
assert(
|
||||
sameAsRunningActual == sameAsRunningExpected,
|
||||
s"Expected explicit pluginCrossBuild / sbtVersion to be $sameAsRunningExpected, got $sameAsRunningActual"
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
lazy val defaultPlugin = (project in file("default-plugin"))
|
||||
.enablePlugins(SbtPlugin)
|
||||
.settings(
|
||||
scalaVersion := "2.12.21"
|
||||
)
|
||||
|
||||
lazy val sameAsRunning = (project in file("same-as-running"))
|
||||
.enablePlugins(SameAsRunningPlugin)
|
||||
.settings(
|
||||
scalaVersion := "2.12.21"
|
||||
)
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import sbt._
|
||||
import sbt.Keys._
|
||||
|
||||
object PluginCrossSbtVersionOverridePlugin extends AutoPlugin {
|
||||
override def projectSettings: Seq[Def.Setting[?]] = Seq(
|
||||
pluginCrossBuild / sbtVersion := {
|
||||
scalaBinaryVersion.value match {
|
||||
case "2.12" => "1.12.12"
|
||||
case _ => sbtVersion.value
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
object ConcreteSbtPlugin extends AutoPlugin {
|
||||
override def requires = PluginCrossSbtVersionOverridePlugin && plugins.SbtPlugin
|
||||
}
|
||||
|
||||
object SameAsRunningPlugin extends AutoPlugin {
|
||||
override def requires = plugins.SbtPlugin
|
||||
|
||||
override def projectSettings: Seq[Def.Setting[?]] = Seq(
|
||||
pluginCrossBuild / sbtVersion := sbtVersion.value
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> check
|
||||
Loading…
Reference in New Issue