forked from playframework/play-slick
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
99 lines (83 loc) · 3.27 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
import com.typesafe.tools.mima.plugin.MimaPlugin._
import interplay.ScalaVersions._
lazy val commonSettings = Seq(
// Work around https://issues.scala-lang.org/browse/SI-9311
scalacOptions ~= (_.filterNot(_ == "-Xfatal-warnings")),
scalaVersion := scala212,
crossScalaVersions := Seq(scala212, scala211)
)
lazy val `play-slick-root` = (project in file("."))
.enablePlugins(PlayRootProject)
.aggregate(
`play-slick`,
`play-slick-evolutions`
)
.settings(commonSettings: _*)
lazy val `play-slick` = (project in file("src/core"))
.enablePlugins(PlayLibrary, Playdoc)
.settings(libraryDependencies ++= Dependencies.core)
.settings(mimaSettings)
.settings(commonSettings: _*)
lazy val `play-slick-evolutions` = (project in file("src/evolutions"))
.enablePlugins(PlayLibrary, Playdoc)
.settings(libraryDependencies ++= Dependencies.evolutions)
.settings(mimaSettings)
.settings(commonSettings: _*)
.dependsOn(`play-slick` % "compile;test->test")
lazy val docs = project
.in(file("docs"))
.enablePlugins(PlayDocsPlugin)
.dependsOn(`play-slick`)
.dependsOn(`play-slick-evolutions`)
.settings(commonSettings: _*)
playBuildRepoName in ThisBuild := "play-slick"
playBuildExtraTests := {
(test in (samples, Test)).value
}
// Binary compatibility is tested against this version
val previousVersion: Option[String] = None
def mimaSettings = mimaDefaultSettings ++ Seq(
mimaPreviousArtifacts := Set(previousVersion flatMap { previousVersion =>
if (crossPaths.value) Some(organization.value % s"${moduleName.value}_${scalaBinaryVersion.value}" % previousVersion)
else Some(organization.value % moduleName.value % previousVersion)
}).flatten
)
lazy val samples = project
.in(file("samples"))
.aggregate(
basicSample,
computerDatabaseSample,
iterateeSample
)
def sampleProject(name: String) =
Project(s"$name-sample", file("samples") / name)
.enablePlugins(PlayScala)
.disablePlugins(PlayFilters)
.dependsOn(`play-slick`)
.dependsOn(`play-slick-evolutions`)
.settings(
libraryDependencies ++= Seq(
Library.playSpecs2 % "test",
// This could be removed after releasing https://github.com/playframework/playframework/pull/7266
"org.fluentlenium" % "fluentlenium-core" % "3.2.0"
),
concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)
).settings(libraryDependencies += Library.h2)
.settings(javaOptions in Test += "-Dslick.dbs.default.connectionTimeout=30 seconds")
.settings(commonSettings: _*)
lazy val computerDatabaseSample = sampleProject("computer-database")
lazy val iterateeSample = sampleProject("iteratee")
lazy val basicSample = sampleProject("basic")
lazy val checkCodeFormat = taskKey[Unit]("Check that code format is following Scalariform rules")
checkCodeFormat := {
val exitCode = "git diff --exit-code".!
if (exitCode != 0) {
sys.error(
"""
|ERROR: Scalariform check failed, see differences above.
|To fix, format your sources using sbt scalariformFormat test:scalariformFormat before submitting a pull request.
|Additionally, please squash your commits (eg, use git commit --amend) if you're going to update this pull request.
|""".stripMargin)
}
}
addCommandAlias("validateCode", ";scalariformFormat;checkCodeFormat")