Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
language: scala
sudo: required
services:
- docker
scala:
- 2.11.8
jdk:
Expand All @@ -21,6 +23,9 @@ before_install:
after_success:
- if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then
sbt publishSignedAll;
echo "Deploying to Heroku";
docker login [email protected] --password=$heroku_token registry.heroku.com;
sbt dockerBuildAndPush;
fi
- if [ "$TRAVIS_PULL_REQUEST" = "true" ]; then
echo "Not in master branch, skipping deploy and release";
Expand Down
24 changes: 23 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ lazy val `evaluator-server` = (project in file("server"))
.dependsOn(`evaluator-shared-jvm`)
.enablePlugins(JavaAppPackaging)
.enablePlugins(AutomateHeaderPlugin)
.enablePlugins(sbtdocker.DockerPlugin)
.settings(noPublishSettings: _*)
.settings(
name := "evaluator-server",
Expand All @@ -75,9 +76,30 @@ lazy val `evaluator-server` = (project in file("server"))
"io.get-coursier" %% "coursier" % v('coursier),
"io.get-coursier" %% "coursier-cache" % v('coursier),
"org.scalatest" %% "scalatest" % v('scalaTest) % "test"
)
),
assemblyJarName in assembly := "evaluator-server.jar"
)
.settings(dockerSettings)
.settings(compilerDependencySettings: _*)

onLoad in Global := (Command.process("project evaluator-server", _: State)) compose (onLoad in Global).value
addCommandAlias("publishSignedAll", ";evaluator-sharedJS/publishSigned;evaluator-sharedJVM/publishSigned;evaluator-clientJS/publishSigned;evaluator-clientJVM/publishSigned")

lazy val dockerSettings = Seq(
docker <<= docker dependsOn assembly,
dockerfile in docker := {

val artifact: File = assembly.value
val artifactTargetPath = artifact.name

sbtdocker.immutable.Dockerfile.empty
.from("ubuntu:latest")
.run("apt-get", "update")
.run("apt-get", "install", "-y", "openjdk-8-jdk")
.run("useradd", "-m", "evaluator")
.user("evaluator")
.add(artifact, artifactTargetPath)
.cmdRaw(s"java -Dhttp.port=$$PORT -jar $artifactTargetPath")
},
imageNames in docker := Seq(ImageName(repository = "registry.heroku.com/scala-evaluator-sandbox/web"))
)
2 changes: 1 addition & 1 deletion project/EvaluatorBuild.scala
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ object EvaluatorBuild extends AutoPlugin {

val projectName = Project.extract(s).currentProject.id

s"$blue$projectName$white>${c.RESET}"
s"$blue$projectName$white>${c.RESET} "
}
)

Expand Down
4 changes: 3 additions & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.1")
addSbtPlugin("com.geirsson" % "sbt-scalafmt" % "0.2.11")
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "1.6.0")
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.1")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.12")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.12")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.4.0")