build.sbt (54 lines of code) (raw):
import play.sbt.PlayImport.PlayKeys._
import scala.sys.process._
name := "path-manager"
resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"
version := "1.0"
val awsVersion = "1.12.583"
lazy val dependencies = Seq(
"com.amazonaws" % "aws-java-sdk-dynamodb" % awsVersion,
"com.amazonaws" % "aws-java-sdk-cloudwatch" % awsVersion,
"com.amazonaws" % "aws-java-sdk-ec2" % awsVersion,
"org.apache.commons" % "commons-lang3" % "3.14.0",
"net.logstash.logback" % "logstash-logback-encoder" % "7.3",
"org.scalatestplus.play" %% "scalatestplus-play" % "7.0.1" % "test",
)
enablePlugins(DockerCompose)
addCommandAlias("start", "" +
"; dockerCompose up -d" +
"; compile" +
"; pathManager/run")
lazy val pathManager = project.in(file("path-manager"))
.enablePlugins(PlayScala, JDebPackaging, SystemdPlugin)
.settings(Defaults.coreDefaultSettings: _*)
.settings(
Universal / javaOptions ++= Seq(
"-Dpidfile.path=/dev/null",
"-J-XX:InitialRAMPercentage=50",
"-J-XX:MaxRAMPercentage=50",
"-J-XX:MaxMetaspaceSize=500m",
"-J-XX:+PrintGCDetails",
s"-J-Xloggc:/var/log/${packageName.value}/gc.log"
),
debianPackageDependencies := Seq("java21-runtime-headless"),
maintainer := "Editorial Tools Developers <digitalcms.dev@theguardian.com>",
packageSummary := description.value,
packageDescription := description.value,
scalaVersion := "2.13.15",
ThisBuild / scalaVersion := "2.13.15",
scalacOptions ++= Seq("-feature", "-deprecation", "-language:higherKinds", "-Xfatal-warnings"),
Compile / doc := (target.value / "none"),
Test / fork := false,
name := "path-manager",
playDefaultPort := 10000,
libraryDependencies ++= dependencies,
Universal / packageName := normalizedName.value,
Universal/ topLevelDirectory := Some(normalizedName.value),
Test / testOptions += Tests.Setup(_ => {
println(s"Starting Docker containers for tests")
"docker compose up -d".!
}),
Test / testOptions += Tests.Cleanup(_ => {
println(s"Stopping Docker containers for tests")
"docker compose rm --stop --force".!
}),
)