build.sbt 3.5 KB
Newer Older
D
Dejan Mijić 已提交
1 2
import BuildHelper._

D
Dejan Mijić 已提交
3 4
Global / onChangedBuildSource := ReloadOnSourceChanges

D
Dejan Mijić 已提交
5 6 7
inThisBuild(
  List(
    developers := List(
D
Dejan Mijić 已提交
8
      Developer("jdegoes", "John De Goes", "john@degoes.net", url("https://degoes.net")),
D
Dejan Mijić 已提交
9
      Developer("mijicd", "Dejan Mijic", "dmijic@acm.org", url("https://github.com/mijicd"))
D
Dejan Mijić 已提交
10 11 12 13 14 15
    ),
    homepage         := Some(url("https://github.com/zio/zio-redis/")),
    licenses         := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")),
    organization     := "dev.zio",
    organizationName := "John A. De Goes and the ZIO contributors",
    startYear        := Some(2021)
D
Dejan Mijić 已提交
16 17 18
  )
)

D
Dejan Mijić 已提交
19 20
addCommandAlias("fmt", "all scalafmtSbt scalafmtAll")
addCommandAlias("fmtCheck", "all scalafmtSbtCheck scalafmtCheckAll")
P
Paul Daniels 已提交
21

D
Dejan Mijić 已提交
22
lazy val root =
P
Paul Daniels 已提交
23 24
  project
    .in(file("."))
D
Dejan Mijić 已提交
25
    .settings(publish / skip := true)
26
    .aggregate(redis, benchmarks, example)
D
Dejan Mijić 已提交
27 28 29 30 31

lazy val redis =
  project
    .in(file("redis"))
    .enablePlugins(BuildInfoPlugin)
D
Dejan Mijić 已提交
32 33
    .settings(stdSettings("zio-redis"))
    .settings(buildInfoSettings("zio.redis"))
P
Paul Daniels 已提交
34 35
    .settings(
      libraryDependencies ++= Seq(
D
Dejan Mijić 已提交
36
        "dev.zio" %% "zio-streams"  % Zio,
37
        "dev.zio" %% "zio-logging"  % "0.5.14",
38
        "dev.zio" %% "zio-schema"   % "0.1.1",
D
Dejan Mijić 已提交
39 40
        "dev.zio" %% "zio-test"     % Zio % Test,
        "dev.zio" %% "zio-test-sbt" % Zio % Test
P
Paul Daniels 已提交
41
      ),
D
Dejan Mijić 已提交
42
      testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework"))
P
Paul Daniels 已提交
43
    )
D
Dejan Mijić 已提交
44 45 46 47

lazy val benchmarks =
  project
    .in(file("benchmarks"))
D
Dejan Mijić 已提交
48
    .settings(stdSettings("benchmarks"))
D
Dejan Mijić 已提交
49 50 51
    .dependsOn(redis)
    .enablePlugins(JmhPlugin)
    .settings(
D
Dejan Mijić 已提交
52
      publish / skip := true,
D
Dejan Mijić 已提交
53
      libraryDependencies ++= Seq(
54
        "dev.profunktor"    %% "redis4cats-effects" % "1.0.0",
55
        "io.chrisdavenport" %% "rediculous"         % "0.1.1",
56
        "io.laserdisc"      %% "laserdisc-fs2"      % "0.5.0"
D
Dejan Mijić 已提交
57
      )
D
Dejan Mijić 已提交
58
    )
59 60 61 62 63 64 65

lazy val example =
  project
    .in(file("example"))
    .settings(stdSettings("example"))
    .dependsOn(redis)
    .settings(
D
Dejan Mijić 已提交
66
      publish / skip := true,
67
      libraryDependencies ++= Seq(
68 69
        "com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "3.3.18",
        "com.softwaremill.sttp.client3" %% "zio-json"                      % "3.3.18",
P
Paul Daniels 已提交
70
        "dev.zio"                       %% "zio-streams"                   % Zio,
71 72
        "dev.zio"                       %% "zio-config-magnolia"           % "1.0.10",
        "dev.zio"                       %% "zio-config-typesafe"           % "1.0.10",
73
        "dev.zio"                       %% "zio-prelude"                   % "1.0.0-RC8",
P
Paul Daniels 已提交
74
        "dev.zio"                       %% "zio-json"                      % "0.1.5",
75
        "io.d11"                        %% "zhttp"                         % "1.0.0.0-RC23",
S
Scala Steward 已提交
76
        "io.github.kitlangton"          %% "zio-magic"                     % "0.3.11"
D
Dejan Mijić 已提交
77
      )
78
    )
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

lazy val docs = project
  .in(file("zio-redis-docs"))
  .settings(
    publish / skip := true,
    moduleName     := "zio-redis-docs",
    scalacOptions -= "-Yno-imports",
    scalacOptions -= "-Xfatal-warnings",
    ScalaUnidoc / unidoc / unidocProjectFilter := inProjects(redis),
    ScalaUnidoc / unidoc / target              := (LocalRootProject / baseDirectory).value / "website" / "static" / "api",
    cleanFiles += (ScalaUnidoc / unidoc / target).value,
    docusaurusCreateSite     := docusaurusCreateSite.dependsOn(Compile / unidoc).value,
    docusaurusPublishGhpages := docusaurusPublishGhpages.dependsOn(Compile / unidoc).value
  )
  .settings(macroDefinitionSettings)
  .dependsOn(redis)
  .enablePlugins(MdocPlugin, DocusaurusPlugin, ScalaUnidocPlugin)