forked from guardian/etag-caching
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
72 lines (62 loc) · 2.05 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
import ReleaseTransformations.*
ThisBuild / scalaVersion := "2.13.12"
ThisBuild / crossScalaVersions := Seq(
scalaVersion.value,
"3.3.1",
"2.12.18" // Motivated by facia/FAPI clients still on Scala 2.12
)
ThisBuild / scalacOptions := Seq("-deprecation", "-release","11")
ThisBuild / licenses := Seq("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0"))
lazy val baseSettings = Seq(
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.2.17" % Test
),
Test / testOptions +=
Tests.Argument(TestFrameworks.ScalaTest, "-u", s"test-results/scala-${scalaVersion.value}", "-o")
)
lazy val core =
project.settings(baseSettings,
libraryDependencies ++= Seq(
"com.github.blemale" %% "scaffeine" % "5.2.1"
)
)
def awsS3WithSdkVersion(version: Int)=
Project(s"aws-s3-sdk-v$version", file(s"aws-s3/aws-sdk-v$version"))
.dependsOn(`aws-s3-base`)
.settings(baseSettings,
libraryDependencies ++= Seq(
awsSdkForVersion(version),
"com.adobe.testing" % "s3mock-testcontainers" % "3.1.0" % Test
)
)
val awsSdkForVersion = Map(
// 1 -> "com.amazonaws" % "aws-java-sdk-s3" % "1.12.487",
2 -> "software.amazon.awssdk" % "s3" % "2.20.162"
)
lazy val `aws-s3-base` =
project.in(file("aws-s3/base")).dependsOn(core)
lazy val `aws-s3-sdk-v2` = awsS3WithSdkVersion(2)
lazy val `etag-caching-root` = (project in file("."))
.aggregate(
core,
`aws-s3-base`,
`aws-s3-sdk-v2`
).settings(baseSettings).settings(
publish / skip := true,
releaseCrossBuild := true, // true if you cross-build the project for multiple Scala versions
releaseProcess := Seq[ReleaseStep](
checkSnapshotDependencies,
inquireVersions,
runClean,
runTest,
setReleaseVersion,
commitReleaseVersion,
tagRelease,
// For non cross-build projects, use releaseStepCommand("publishSigned")
releaseStepCommandAndRemaining("+publishSigned"),
releaseStepCommand("sonatypeBundleRelease"),
setNextVersion,
commitNextVersion,
pushChanges
)
)