build.sbt 3.9 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 21
addCommandAlias("check", "fixCheck; fmtCheck")
addCommandAlias("fix", "scalafixAll")
addCommandAlias("fixCheck", "scalafixAll --check")
D
Dejan Mijić 已提交
22 23
addCommandAlias("fmt", "all scalafmtSbt scalafmtAll")
addCommandAlias("fmtCheck", "all scalafmtSbtCheck scalafmtCheckAll")
D
Dejan Mijić 已提交
24
addCommandAlias("prepare", "fix; fmt")
P
Paul Daniels 已提交
25

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

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

lazy val benchmarks =
  project
    .in(file("benchmarks"))
D
Dejan Mijić 已提交
53
    .settings(stdSettings("benchmarks"))
D
Dejan Mijić 已提交
54 55 56
    .dependsOn(redis)
    .enablePlugins(JmhPlugin)
    .settings(
D
Dejan Mijić 已提交
57
      publish / skip := true,
D
Dejan Mijić 已提交
58
      libraryDependencies ++= Seq(
59 60 61
        "dev.profunktor"    %% "redis4cats-effects"  % "1.1.1",
        "io.chrisdavenport" %% "rediculous"          % "0.1.1",
        "io.laserdisc"      %% "laserdisc-fs2"       % "0.5.0",
62
        "dev.zio"           %% "zio-schema-protobuf" % "0.1.9"
D
Dejan Mijić 已提交
63
      )
D
Dejan Mijić 已提交
64
    )
65 66 67 68 69 70 71

lazy val example =
  project
    .in(file("example"))
    .settings(stdSettings("example"))
    .dependsOn(redis)
    .settings(
D
Dejan Mijić 已提交
72
      publish / skip := true,
73
      libraryDependencies ++= Seq(
74 75
        "com.softwaremill.sttp.client3" %% "async-http-client-backend-zio1" % "3.6.2",
        "com.softwaremill.sttp.client3" %% "zio1-json"                      % "3.6.2",
76
        "dev.zio"                       %% "zio-streams"                    % Zio,
77 78
        "dev.zio"                       %% "zio-config-magnolia"            % "2.0.4",
        "dev.zio"                       %% "zio-config-typesafe"            % "2.0.4",
79
        "dev.zio"                       %% "zio-schema-protobuf"            % "0.1.9",
80
        "dev.zio"                       %% "zio-json"                       % "0.1.5",
81
        "io.d11"                        %% "zhttp"                          % "1.0.0.0-RC25",
82
        "io.github.kitlangton"          %% "zio-magic"                      % "0.3.12"
D
Dejan Mijić 已提交
83
      )
84
    )
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

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)