-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathbuild.sbt
114 lines (104 loc) · 3.75 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
import org.typelevel.sbt.gha.WorkflowStep.Sbt
val scala_213 = "2.13.16"
val scala_3 = "3.3.5"
val V = new {
val ociSdk = "3.59.0"
val zio = "2.1.16"
val `zio-nio` = "2.0.2"
}
lazy val D = new {
val objectStorage = "com.oracle.oci.sdk" % "oci-java-sdk-objectstorage" % V.ociSdk
val zio = "dev.zio" %% "zio" % V.zio
val `zio-nio` = "dev.zio" %% "zio-nio" % V.`zio-nio`
val `zio-streams` = "dev.zio" %% "zio-streams" % V.zio
val `httpclient-jersey` = "com.oracle.oci.sdk" % "oci-java-sdk-common-httpclient-jersey" % V.ociSdk % Test
val `zio-test` = "dev.zio" %% "zio-test" % V.zio % Test
val `zio-test-sbt` = "dev.zio" %% "zio-test-sbt" % V.zio % Test
}
ThisBuild / tlBaseVersion := "0.8"
ThisBuild / tlCiReleaseBranches := Seq("master")
ThisBuild / tlJdkRelease := Some(11)
ThisBuild / sonatypeCredentialHost := Sonatype.sonatypeLegacy
ThisBuild / organization := "io.laserdisc"
ThisBuild / organizationName := "LaserDisc"
ThisBuild / licenses := Seq(License.MIT)
ThisBuild / startYear := Some(2021)
ThisBuild / developers := List(tlGitHubDev("amir", "Amir Saeid"))
ThisBuild / crossScalaVersions := Seq(scala_213, scala_3)
ThisBuild / scalaVersion := scala_213
ThisBuild / githubWorkflowJavaVersions := Seq(JavaSpec.temurin("11"), JavaSpec.temurin("17"), JavaSpec.temurin("21"))
ThisBuild / githubWorkflowEnv += ("OCI_PRIVATE_KEY", "/tmp/oci_key.pem")
ThisBuild / githubWorkflowBuildPreamble += WorkflowStep.Run(
commands = List("echo $OCI_PRIVATE_KEY_BASE64 | base64 -d > $OCI_PRIVATE_KEY"),
env = Map(("OCI_PRIVATE_KEY_BASE64", "${{ secrets.OCI_PRIVATE_KEY_BASE64 }}")),
name = Some("Set up OCI key")
)
ThisBuild / githubWorkflowBuild ~= {
_.map {
case sbt: Sbt if sbt.name == Some("Test") =>
sbt.concatEnv(
List(
("OCI_USER_ID", "${{ secrets.OCI_USER_ID }}"),
("OCI_TENANT_ID", "${{ secrets.OCI_TENANT_ID }}"),
("OCI_FINGERPRINT", "${{ secrets.OCI_FINGERPRINT }}")
)
)
case other => other
}
}
lazy val commonSettings = Seq(
headerEndYear := Some(2025),
scalacOptions ++= {
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, major)) if major >= 13 => Seq("-Wconf:cat=lint-infer-any:s")
case _ => Seq.empty
}
},
testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"),
Test / fork := true
)
lazy val `zio-oci-objectstorage` = tlCrossRootProject
.aggregate(core, `integration-tests`, testkit)
lazy val testkit = project
.dependsOn(core)
.settings(commonSettings)
.settings(
name := "zio-oci-objectstorage-testkit",
libraryDependencies ++= Seq(
D.objectStorage,
D.zio,
D.`zio-nio`,
D.`zio-streams`,
D.`zio-test`,
D.`zio-test-sbt`
)
)
lazy val core = project
.settings(commonSettings)
.settings(
name := "zio-oci-objectstorage",
libraryDependencies ++= Seq(
D.objectStorage,
D.`httpclient-jersey`,
D.zio,
D.`zio-streams`,
D.`zio-test`,
D.`zio-test-sbt`
)
)
lazy val `integration-tests` = project
.in(file("it"))
.dependsOn(core)
.enablePlugins(NoPublishPlugin)
.settings(commonSettings)
.settings(
name := "zio-oci-objectstorage-it",
libraryDependencies ++= Seq(
D.objectStorage,
D.`httpclient-jersey`,
D.zio,
D.`zio-streams`,
D.`zio-test`,
D.`zio-test-sbt`
)
)