|
1 |
| -lazy val noPublishSettings = Seq( |
2 |
| - publish := (), |
3 |
| - publishLocal := (), |
4 |
| - publishArtifact := false |
5 |
| -) |
6 |
| - |
7 | 1 | lazy val root = (project in file("."))
|
8 | 2 | .settings(mainClass in Universal := Some("org.scalaexercises.evaluator.EvaluatorServer"))
|
9 | 3 | .settings(stage <<= (stage in Universal in `evaluator-server`))
|
10 | 4 | .settings(noPublishSettings: _*)
|
11 |
| - .aggregate(`evaluator-server`, `evaluator-shared-jvm`, `evaluator-shared-js`, `evaluator-client-jvm`, `evaluator-client-js`) |
| 5 | + .aggregate( |
| 6 | + `evaluator-server`, |
| 7 | + `evaluator-shared-jvm`, |
| 8 | + `evaluator-shared-js`, |
| 9 | + `evaluator-client-jvm`, |
| 10 | + `evaluator-client-js`) |
12 | 11 |
|
13 | 12 | lazy val `evaluator-shared` = (crossProject in file("shared"))
|
14 | 13 | .enablePlugins(AutomateHeaderPlugin)
|
15 | 14 | .settings(name := "evaluator-shared")
|
16 | 15 |
|
17 | 16 | lazy val `evaluator-shared-jvm` = `evaluator-shared`.jvm
|
18 |
| -lazy val `evaluator-shared-js` = `evaluator-shared`.js |
19 |
| - |
20 |
| -lazy val scalaJSSettings = Seq( |
21 |
| - requiresDOM := false, |
22 |
| - scalaJSUseRhino := false, |
23 |
| - jsEnv := NodeJSEnv().value, |
24 |
| - libraryDependencies ++= Seq( |
25 |
| - "fr.hmil" %%% "roshttp" % v('roshttp), |
26 |
| - "org.typelevel" %%% "cats-free" % v('cats), |
27 |
| - "io.circe" %%% "circe-core" % v('circe), |
28 |
| - "io.circe" %%% "circe-generic" % v('circe), |
29 |
| - "io.circe" %%% "circe-parser" % v('circe) |
30 |
| - ) |
31 |
| -) |
| 17 | +lazy val `evaluator-shared-js` = `evaluator-shared`.js |
32 | 18 |
|
33 | 19 | lazy val `evaluator-client` = (crossProject in file("client"))
|
34 | 20 | .dependsOn(`evaluator-shared`)
|
35 | 21 | .enablePlugins(AutomateHeaderPlugin)
|
36 | 22 | .settings(
|
37 | 23 | name := "evaluator-client",
|
38 | 24 | libraryDependencies ++= Seq(
|
39 |
| - "fr.hmil" %% "roshttp" % v('roshttp), |
40 |
| - "org.typelevel" %% "cats-free" % v('cats), |
41 |
| - "io.circe" %% "circe-core" % v('circe), |
42 |
| - "io.circe" %% "circe-generic" % v('circe), |
43 |
| - "io.circe" %% "circe-parser" % v('circe), |
44 |
| - "org.log4s" %% "log4s" % v('log4s), |
45 |
| - "org.slf4j" % "slf4j-simple" % v('slf4j), |
46 |
| - // Testing libraries |
47 |
| - "org.scalatest" %% "scalatest" % v('scalaTest) % "test" |
| 25 | + %%("roshttp"), |
| 26 | + %%("cats-free"), |
| 27 | + %%("circe-core"), |
| 28 | + %%("circe-generic"), |
| 29 | + %%("circe-parser"), |
| 30 | + %%("log4s"), |
| 31 | + %("slf4j-simple"), |
| 32 | + %%("scalatest") % "test" |
48 | 33 | )
|
49 |
| -) |
50 |
| - .jsSettings(scalaJSSettings: _*) |
| 34 | + ) |
| 35 | + .jsSettings(sharedJsSettings: _*) |
51 | 36 |
|
52 | 37 | lazy val `evaluator-client-jvm` = `evaluator-client`.jvm
|
53 |
| -lazy val `evaluator-client-js` = `evaluator-client`.js |
| 38 | +lazy val `evaluator-client-js` = `evaluator-client`.js |
54 | 39 |
|
55 | 40 | lazy val `evaluator-server` = (project in file("server"))
|
56 | 41 | .dependsOn(`evaluator-shared-jvm`)
|
57 | 42 | .enablePlugins(JavaAppPackaging)
|
58 | 43 | .enablePlugins(AutomateHeaderPlugin)
|
59 | 44 | .enablePlugins(sbtdocker.DockerPlugin)
|
| 45 | + .enablePlugins(BuildInfoPlugin) |
60 | 46 | .settings(noPublishSettings: _*)
|
61 | 47 | .settings(
|
62 | 48 | name := "evaluator-server",
|
63 | 49 | libraryDependencies ++= Seq(
|
64 |
| - "io.monix" %% "monix" % v('monix), |
65 |
| - "org.http4s" %% "http4s-dsl" % v('http4s), |
66 |
| - "org.http4s" %% "http4s-blaze-server" % v('http4s), |
67 |
| - "org.http4s" %% "http4s-blaze-client" % v('http4s), |
68 |
| - "org.http4s" %% "http4s-circe" % v('http4s), |
69 |
| - "io.circe" %% "circe-core" % v('circe), |
70 |
| - "io.circe" %% "circe-generic" % v('circe), |
71 |
| - "io.circe" %% "circe-parser" % v('circe), |
72 |
| - "com.typesafe" % "config" % v('config), |
73 |
| - "com.pauldijou" %% "jwt-core" % v('jwtcore), |
74 |
| - "org.log4s" %% "log4s" % v('log4s), |
75 |
| - "org.slf4j" % "slf4j-simple" % v('slf4j), |
76 |
| - "io.get-coursier" %% "coursier" % v('coursier), |
77 |
| - "io.get-coursier" %% "coursier-cache" % v('coursier), |
78 |
| - "org.scalatest" %% "scalatest" % v('scalaTest) % "test" |
| 50 | + %%("monix"), |
| 51 | + %%("circe-core"), |
| 52 | + %%("circe-generic"), |
| 53 | + %%("circe-parser"), |
| 54 | + %%("log4s"), |
| 55 | + %("slf4j-simple"), |
| 56 | + %%("http4s-dsl", http4sV), |
| 57 | + %%("http4s-blaze-server", http4sV), |
| 58 | + %%("http4s-blaze-client", http4sV), |
| 59 | + %%("http4s-circe", http4sV), |
| 60 | + %("config"), |
| 61 | + %%("jwt-core"), |
| 62 | + "io.get-coursier" %% "coursier" % "1.0.0-M15-3", |
| 63 | + "io.get-coursier" %% "coursier-cache" % "1.0.0-M15-3", |
| 64 | + %%("scalatest") % "test" |
79 | 65 | ),
|
80 |
| - assemblyJarName in assembly := "evaluator-server.jar" |
| 66 | + assemblyJarName in assembly := "evaluator-server.jar", |
| 67 | + buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion), |
| 68 | + buildInfoPackage := "org.scalaexercises.evaluator" |
81 | 69 | )
|
82 | 70 | .settings(dockerSettings)
|
83 |
| - .settings(compilerDependencySettings: _*) |
| 71 | + .settings(scalaMacroDependencies: _*) |
84 | 72 |
|
85 | 73 | lazy val `smoketests` = (project in file("smoketests"))
|
86 | 74 | .dependsOn(`evaluator-server`)
|
| 75 | + .settings(noPublishSettings: _*) |
87 | 76 | .settings(
|
88 | 77 | name := "evaluator-server-smoke-tests",
|
89 | 78 | libraryDependencies ++= Seq(
|
90 |
| - "org.scalatest" %% "scalatest" % v('scalaTest) % "test", |
91 |
| - "org.http4s" %% "http4s-blaze-client" % v('http4s), |
92 |
| - "org.http4s" %% "http4s-circe" % v('http4s), |
93 |
| - "io.circe" %% "circe-core" % v('circe), |
94 |
| - "io.circe" %% "circe-generic" % v('circe), |
95 |
| - "io.circe" %% "circe-parser" % v('circe), |
96 |
| - "com.pauldijou" %% "jwt-core" % v('jwtcore) |
| 79 | + %%("circe-core"), |
| 80 | + %%("circe-generic"), |
| 81 | + %%("circe-parser"), |
| 82 | + %%("http4s-blaze-client", http4sV), |
| 83 | + %%("http4s-circe", http4sV), |
| 84 | + %%("jwt-core"), |
| 85 | + %%("scalatest") % "test" |
97 | 86 | )
|
98 |
| - |
99 | 87 | )
|
100 | 88 |
|
101 |
| -onLoad in Global := (Command.process("project evaluator-server", _: State)) compose (onLoad in Global).value |
102 |
| -addCommandAlias("publishSignedAll", ";evaluator-sharedJS/publishSigned;evaluator-sharedJVM/publishSigned;evaluator-clientJS/publishSigned;evaluator-clientJVM/publishSigned") |
103 |
| - |
104 |
| -lazy val dockerSettings = Seq( |
105 |
| - docker <<= docker dependsOn assembly, |
106 |
| - dockerfile in docker := { |
107 |
| - |
108 |
| - val artifact: File = assembly.value |
109 |
| - val artifactTargetPath = artifact.name |
110 |
| - |
111 |
| - sbtdocker.immutable.Dockerfile.empty |
112 |
| - .from("ubuntu:latest") |
113 |
| - .run("apt-get", "update") |
114 |
| - .run("apt-get", "install", "-y", "openjdk-8-jdk") |
115 |
| - .run("useradd", "-m", "evaluator") |
116 |
| - .user("evaluator") |
117 |
| - .add(artifact, artifactTargetPath) |
118 |
| - .cmdRaw(s"java -Dhttp.port=$$PORT -Deval.auth.secretKey=$$EVAL_SECRET_KEY -jar $artifactTargetPath") |
119 |
| - }, |
120 |
| - imageNames in docker := Seq(ImageName(repository = "registry.heroku.com/scala-evaluator/web")) |
| 89 | +onLoad in Global := (Command |
| 90 | + .process("project evaluator-server", _: State)) compose (onLoad in Global).value |
| 91 | +addCommandAlias( |
| 92 | + "publishSignedAll", |
| 93 | + ";evaluator-sharedJS/publishSigned;evaluator-sharedJVM/publishSigned;evaluator-clientJS/publishSigned;evaluator-clientJVM/publishSigned" |
121 | 94 | )
|
| 95 | + |
| 96 | +pgpPassphrase := Some(getEnvVar("PGP_PASSPHRASE").getOrElse("").toCharArray) |
| 97 | +pgpPublicRing := file(s"$gpgFolder/pubring.gpg") |
| 98 | +pgpSecretRing := file(s"$gpgFolder/secring.gpg") |
0 commit comments