-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathbuild.sbt
126 lines (119 loc) · 4.08 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import Dependencies._
import Settings._
ThisBuild / scalaVersion := supportedScala
lazy val `neutron-core` = (project in file("core"))
.enablePlugins(AutomateHeaderPlugin)
.settings(commonSettings)
.settings(
libraryDependencies ++= List(
CompilerPlugins.betterMonadicFor,
CompilerPlugins.kindProjector,
Libraries.cats,
Libraries.catsEffect,
Libraries.fs2,
Libraries.newtype,
Libraries.pulsar,
Libraries.weaverCats % Test
)
)
lazy val `neutron-circe` = (project in file("circe"))
.enablePlugins(AutomateHeaderPlugin)
.dependsOn(`neutron-core`)
.settings(commonSettings)
.settings(
libraryDependencies ++= List(
Libraries.avro4s % Provided,
Libraries.circeCore,
Libraries.circeParser
)
)
lazy val `neutron-function` = (project in file("function"))
.enablePlugins(AutomateHeaderPlugin)
.settings(commonSettings)
.settings(
libraryDependencies ++= List(
Libraries.pulsarFunctionsApi,
Libraries.java8Compat,
Libraries.newtype,
Libraries.cats % Test,
Libraries.catsEffect % Test,
Libraries.cats % Test,
Libraries.weaverCats % Test,
Libraries.weaverScalaCheck % Test
)
)
lazy val tests = (project in file("tests"))
.enablePlugins(AutomateHeaderPlugin)
.settings(commonSettings)
.configs(IntegrationTest)
.settings(
noPublish,
Defaults.itSettings,
libraryDependencies ++= List(
CompilerPlugins.betterMonadicFor,
CompilerPlugins.kindProjector,
Libraries.avro4s % "it,test",
Libraries.circeCore % "it,test",
Libraries.circeGeneric % "it,test",
Libraries.circeParser % "it,test",
Libraries.weaverCats % "it,test"
)
)
.dependsOn(`neutron-circe`)
lazy val docs = (project in file("docs"))
.dependsOn(`neutron-circe`)
.enablePlugins(ParadoxSitePlugin)
.enablePlugins(ParadoxMaterialThemePlugin)
.enablePlugins(GhpagesPlugin)
.enablePlugins(MdocPlugin)
.settings(
noPublish,
libraryDependencies ++= List(
Libraries.avro4s,
Libraries.circeGeneric
),
scalacOptions -= "-Xfatal-warnings",
scmInfo := Some(
ScmInfo(
url("https://github.com/cr-org/neutron"),
"scm:git:[email protected]:cr-org/neutron.git"
)
),
git.remoteRepo := scmInfo.value.get.connection.replace("scm:git:", ""),
ghpagesNoJekyll := true,
version := version.value.takeWhile(_ != '+'),
paradoxProperties ++= Map(
"scala-versions" -> (`neutron-core` / crossScalaVersions).value
.map(CrossVersion.partialVersion)
.flatten
.map(_._2)
.mkString("2.", "/", ""),
"org" -> organization.value,
"scala.binary.version" -> s"2.${CrossVersion.partialVersion(scalaVersion.value).get._2}",
"neutron-core" -> s"${(`neutron-core` / name).value}_2.${CrossVersion.partialVersion(scalaVersion.value).get._2}",
"neutron-circe" -> s"${(`neutron-circe` / name).value}_2.${CrossVersion.partialVersion(scalaVersion.value).get._2}",
"neutron-function" -> s"${(`neutron-function` / name).value}_2.${CrossVersion.partialVersion(scalaVersion.value).get._2}",
"version" -> version.value
),
mdocIn := (Paradox / sourceDirectory).value,
mdocExtraArguments ++= Seq("--no-link-hygiene"),
makeSite := makeSite.dependsOn(mdoc.toTask("")).value,
ParadoxMaterialThemePlugin.paradoxMaterialThemeSettings(Paradox),
Paradox / paradoxMaterialTheme := {
ParadoxMaterialTheme()
.withColor("red", "orange")
.withLogoIcon("flash_on")
.withCopyright("Copyright © Chatroulette")
.withRepository(uri("https://github.com/cr-org/neutron"))
}
)
lazy val root = (project in file("."))
.settings(name := "neutron")
.settings(noPublish)
.aggregate(
`neutron-function`,
`neutron-circe`,
`neutron-core`,
docs,
tests
)