forked from 47degrees/github4s
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
91 lines (75 loc) · 2.52 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
import sbtorgpolicies.runnable.syntax._
pgpPassphrase := Some(getEnvVar("PGP_PASSPHRASE").getOrElse("").toCharArray)
pgpPublicRing := file(s"$gpgFolder/pubring.gpg")
pgpSecretRing := file(s"$gpgFolder/secring.gpg")
lazy val root = (project in file("."))
.settings(moduleName := "github4s-root")
.aggregate(allModules: _*)
.dependsOn(allModulesDeps: _*)
.settings(noPublishSettings: _*)
lazy val github4s = (crossProject in file("github4s"))
.settings(moduleName := "github4s")
.enablePlugins(BuildInfoPlugin)
.settings(
buildInfoKeys := Seq[BuildInfoKey](
name,
version,
"token" -> sys.env.getOrElse("GITHUB4S_ACCESS_TOKEN", "")),
buildInfoPackage := "github4s"
)
.crossDepSettings(commonCrossDeps: _*)
.settings(standardCommonDeps: _*)
.jvmSettings(jvmDeps: _*)
.jsSettings(jsDeps: _*)
.jsSettings(sharedJsSettings: _*)
.jsSettings(testSettings: _*)
lazy val github4sJVM = github4s.jvm
lazy val github4sJS = github4s.js
lazy val scalaz = (project in file("scalaz"))
.settings(moduleName := "github4s-scalaz")
.settings(scalazDependencies: _*)
.dependsOn(github4sJVM)
lazy val catsEffect = (crossProject in file("cats-effect"))
.settings(moduleName := "github4s-cats-effect")
.crossDepSettings(catsEffectDependencies: _*)
.jsSettings(sharedJsSettings: _*)
.jsSettings(testSettings: _*)
.dependsOn(github4s)
lazy val catsEffectJVM = catsEffect.jvm
lazy val catsEffectJS = catsEffect.js
/////////////////////
//// ALL MODULES ////
/////////////////////
lazy val jvmModules: Seq[ProjectReference] = Seq(
github4sJVM,
scalaz,
catsEffectJVM
)
lazy val jsModules: Seq[ProjectReference] = Seq(
github4sJS,
catsEffectJS
)
lazy val allModules: Seq[ProjectReference] = jvmModules ++ jsModules
lazy val allModulesDeps: Seq[ClasspathDependency] =
allModules.map(ClasspathDependency(_, None))
//////////
// DOCS //
//////////
lazy val docs = (project in file("docs"))
.dependsOn(allModulesDeps: _*)
.settings(moduleName := "github4s-docs")
.settings(micrositeSettings: _*)
.settings(docsDependencies: _*)
.settings(noPublishSettings: _*)
.enablePlugins(MicrositesPlugin)
//////////
// MISC //
//////////
addCommandAlias("validateDocs", ";project docs;tut;project root")
addCommandAlias(
"validateJVM",
(toCompileTestList(jvmModules) ++ List("project root")).asCmd)
addCommandAlias("validateJS", (toCompileTestList(jsModules) ++ List("project root")).asCmd)
addCommandAlias(
"validate",
";clean;compile;coverage;validateJVM;coverageReport;coverageAggregate;coverageOff")