build.sbt (53 lines of code) (raw):
name := "housekeeper"
organization := "com.gu"
description:= "Housekeeping for Ophan"
version := "1.0"
scalaVersion := "3.2.1"
scalacOptions ++= Seq(
"-deprecation",
"-encoding", "UTF-8",
)
val scanamoVersion = "1.0.0-M26"
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-lambda-java-core" % "1.2.3",
"com.amazonaws" % "aws-lambda-java-events" % "3.11.4",
"net.logstash.logback" % "logstash-logback-encoder" % "7.0.1",
"org.slf4j" % "log4j-over-slf4j" % "1.7.32", // log4j-over-slf4j provides `org.apache.log4j.MDC`, which is dynamically loaded by the Lambda runtime
"ch.qos.logback" % "logback-classic" % "1.2.13",
"com.fasterxml.jackson.core" % "jackson-databind" % "2.15.2", // So many Snyk warnings
"com.typesafe.play" %% "play-json" % "2.10.0-RC7",
"org.scanamo" %% "scanamo" % scanamoVersion,
"org.scanamo" %% "scanamo-testkit" % scanamoVersion % Test,
"org.scalatest" %% "scalatest" % "3.2.16" % Test
) ++ Seq("dynamodb", "sns", "url-connection-client").map(artifact => "software.amazon.awssdk" % artifact % "2.25.28")
enablePlugins(BuildInfoPlugin)
assembly / assemblyOutputPath := file(s"target/${name.value}.jar")
assembly / assemblyMergeStrategy := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case _ => MergeStrategy.first
}
startDynamoDBLocal := startDynamoDBLocal.dependsOn(Test / compile).value
dynamoDBLocalPort := 8042
inConfig(Test)(Seq(
test := (Test / test).dependsOn(startDynamoDBLocal).value,
testOnly := (Test / testOnly).dependsOn(startDynamoDBLocal).evaluated,
testQuick := (Test / testQuick).dependsOn(startDynamoDBLocal).evaluated,
testOptions += dynamoDBLocalTestCleanup.value
))
def env(propName: String): Option[String] = sys.env.get(propName).filter(_.trim.nonEmpty)
buildInfoPackage := "housekeeper"
buildInfoKeys ++= Seq[BuildInfoKey](
name,
scalaVersion,
sbtVersion,
// copied from https://github.com/guardian/sbt-riffraff-artifact/blob/e6f5e62d8f776b1004f72ed1ea415328fa43ed31/src/main/scala/com/gu/riffraff/artifact/BuildInfo.scala
BuildInfoKey.sbtbuildinfoConstantEntry("buildNumber", env("GITHUB_RUN_NUMBER")),
BuildInfoKey.sbtbuildinfoConstantEntry("buildTime", System.currentTimeMillis),
BuildInfoKey.sbtbuildinfoConstantEntry("gitCommitId", env("GITHUB_SHA")),
BuildInfoKey.sbtbuildinfoConstantEntry(
"branch",
env("GITHUB_HEAD_REF")
.orElse(env("GITHUB_REF"))
.orElse(Some("unknown-branch"))
.get
.stripPrefix("refs/heads/")),
)