gs-test/build.sbt

98 lines
2.4 KiB
Scala

val scala3: String = "3.5.1"
ThisBuild / scalaVersion := scala3
ThisBuild / versionScheme := Some("semver-spec")
ThisBuild / gsProjectName := "gs-test"
ThisBuild / externalResolvers := Seq(
"Garrity Software Mirror" at "https://maven.garrity.co/releases",
"Garrity Software Releases" at "https://maven.garrity.co/gs"
)
ThisBuild / licenses := Seq(
"MIT" -> url("https://garrity.co/MIT.html")
)
val noPublishSettings = Seq(
publish := {}
)
val sharedSettings = Seq(
scalaVersion := scala3,
version := semVerSelected.value,
coverageFailOnMinimum := true
/* coverageMinimumStmtTotal := 100, coverageMinimumBranchTotal := 100 */
)
val Deps = new {
val Cats = new {
val Core: ModuleID = "org.typelevel" %% "cats-core" % "2.12.0"
val Effect: ModuleID = "org.typelevel" %% "cats-effect" % "3.5.4"
}
val Fs2 = new {
val Core: ModuleID = "co.fs2" %% "fs2-core" % "3.10.2"
}
val Natchez = new {
val Core: ModuleID = "org.tpolecat" %% "natchez-core" % "0.3.6"
}
val Gs = new {
val Uuid: ModuleID = "gs" %% "gs-uuid-v0" % "0.3.0"
val Timing: ModuleID = "gs" %% "gs-timing-v0" % "0.1.1"
val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.2.0"
}
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.0.1"
}
lazy val testSettings = Seq(
libraryDependencies ++= Seq(
Deps.MUnit % Test,
Deps.Gs.Datagen % Test
)
)
lazy val `gs-test` = project
.in(file("."))
.aggregate(
`api-definition`,
`api-execution`
)
.settings(noPublishSettings)
.settings(name := s"${gsProjectName.value}-v${semVerMajor.value}")
lazy val `api-definition` = project
.in(file("modules/api-definition"))
.settings(sharedSettings)
.settings(testSettings)
.settings(
name := s"${gsProjectName.value}-api-definition-v${semVerMajor.value}"
)
.settings(
libraryDependencies ++= Seq(
Deps.Cats.Core,
Deps.Cats.Effect,
Deps.Natchez.Core
)
)
lazy val `api-execution` = project
.in(file("modules/api-execution"))
.dependsOn(`api-definition`)
.settings(sharedSettings)
.settings(testSettings)
.settings(
name := s"${gsProjectName.value}-api-execution-v${semVerMajor.value}"
)
.settings(
libraryDependencies ++= Seq(
Deps.Gs.Uuid,
Deps.Gs.Timing,
Deps.Cats.Core,
Deps.Cats.Effect,
Deps.Fs2.Core,
Deps.Natchez.Core
)
)