89 lines
2.1 KiB
Scala
89 lines
2.1 KiB
Scala
val scala3: String = "3.5.0"
|
|
|
|
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 Gs = new {
|
|
val Uuid: ModuleID = "gs" %% "gs-uuid-v0" % "0.3.0"
|
|
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.Fs2.Core
|
|
)
|
|
)
|
|
|
|
lazy val `api-execution` = project
|
|
.in(file("modules/api-execution"))
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(
|
|
name := s"${gsProjectName.value}-api-execution-v${semVerMajor.value}"
|
|
)
|
|
.settings(
|
|
libraryDependencies ++= Seq(
|
|
Deps.Cats.Core,
|
|
Deps.Cats.Effect,
|
|
Deps.Fs2.Core
|
|
)
|
|
)
|